Fragmentos de DIferencia para diferentes orientaciones

Tengo una actividad en una aplicación de tableta y quiero mostrar diferentes fragmentos dependiendo de la orientación. Pensé que la forma más fácil de hacerlo era definir dos archivos XML de diseño diferentes, uno para el paisaje y otro para el retrato. En otras palabras, tengo /layout/home.xml que se parece a esto:

<LinearLayout android:orientation="horizontal"> <fragment class="com.foo.app.Frag1" android:id="frag1"/> <fragment class="com.foo.app.Frag2" android:id="frag2"/> </LinearLayout> 

Y luego en /layout-port/home.xml:

 <LinearLayout android:orientation="vertical"> <fragment class="com.foo.app.Frag2" android:id="frag2"/> <fragment class="com.foo.app.Frag3" android:id="frag3"/> </LinearLayout> 

Cuando lo ejecuto, puedo empezar en el paisaje e ir al retrato, y todo está bien. Sin embargo, cuando voy de retrato a paisaje, la aplicación se bloquea con un android.content.res.Resources $ NotFoundException con Resource ID igual a "frag3". Eso es correcto que está buscando Frag3 cuando va a hacer paisaje, y no hay Frag3 en ese modo. Esto ocurre durante la pila Activity.onCreate, por lo que antes de que cualquiera de mi código tenga alguna posibilidad de que la aplicación se bloquee.

¿No se supone que Fragments trabajen de esta manera? ¿Necesito utilizar FragmentTransaction en su lugar?

Es difícil decirlo sin ver el código. Sin embargo, Resources.NotFoundException generalmente significa que intentó buscar un recurso (piense R.layout.xx, R.drawable.xx, etc) incorrectamente.

Dicho esto, he intentado escribir una pequeña aplicación utilizando su XML de diseño, y el compilador me gritó para las cadenas de hardcoding como los ID cuando copié en su código XML para probarlo. Intente cambiar los valores del atributo android: id para leerlo así:

Android: id = "android: id =" @ + id / frag1 "

Que podría solucionar el problema.

  • ¿Es solo yo ... o es Android Honeycomb 3.0 emulador realmente lento?
  • ¿Cuál es la "mejor práctica" para cambiar de "Actividades" a "Fragmentos" para aplicaciones de Android?
  • Iniciar actividad de los encabezados de preferencia
  • Android AppWidget no aparece en el menú en panal hasta que se reinicie
  • Fragmento de carga de hiladora / diálogo en Honeycomb
  • ActionBar Dropdown Spinner elemento por defecto al primer elemento
  • Detalles técnicos de Android Garbage Collector
  • Cómo utilizar Android DialogFragment setStyle ()
  • Cómo obtener la resolución de pantalla en Android Honeycomb?
  • Cómo cerrar un menú ActionMode mediante programación en Honeycomb?
  • La interfaz de comprobación en la aplicación siempre está en modo horizontal en Honeycomb
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.