Esta aplicación es un ejercicio de aprendizaje para mí que utiliza fragmentos, entre otras cosas. Tiene una sola actividad que gestiona algunos fragmentos diferentes. El primero es un ListFragment (A), que muestra cuándo se inicia la aplicación y carga elementos de la lista desde un cursor. Al hacer clic en un elemento de la lista se notifica a la actividad para reemplazar el ListFragment con un DetailFragment (B) para ese elemento. Si mientras mira a (B) puedo rotar la pantalla, veo (B) en la parte superior de (A), así:Fragmentos de Android que se superponen después de la rotación de la pantalla
http://postimage.org/image/uhy016ds7/
Mi mejor conjetura es que tiene que ver con la destrucción y volver a Android creando la actividad en un cambio de configuración. Me pregunto cuál es la solución más limpia para este problema. Siguen algunos fragmentos de código, avíseme si hay algo más que deba publicar.
res/layout/home.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<fragment
android:id="@+id/fragment_place_list"
android:name="com.simbiosys.apps.foodfast.ui.PlaceListFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</fragment>
</FrameLayout>
MyActivity.onCreate
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
placeListFragment = (PlaceListFragment) getSupportFragmentManager().findFragmentById(
R.id.fragment_place_list);
}
MyActivity.showDetailPane
public void showDetailPane(String id, String reference) {
placeDetailFragment = PlaceDetailFragment.newInstance(id, reference);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.addToBackStack(null);
ft.hide(placeListFragment);
ft.replace(R.id.fragment_container, placeDetailFragment);
ft.show(placeDetailFragment);
ft.commit();
}
¿Has mirado en 'recursos alternativos'? http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources –
Bueno, me estoy enfocando en las pantallas de los teléfonos en este momento.El diseño de ListFragment no sería diferente en el paisaje de todos modos. De hecho, no hay un diseño xml para ListFragment ya que todo lo que tiene actualmente es el ListView incorporado. – Karakuri