La biblioteca de la barra de acciones de AppCompat no muestra fragmentos añadidos

EDIT : Si extiendo FragmentActivity lugar de ActionBarActivity mi diseño aparece de nuevo (sin una ActionBar por supuesto).

La ActionBar funciona como se pretende en los dispositivos 4.x , pero en mi dispositivo 2.3 todo lo que tengo es la ActionBar y una pantalla en blanco debajo de ella. El Fragment no parece estar agregándose a la Activity .

Themes.xml

 <style name="AppTheme" parent="AppBaseTheme"> <item name="actionBarStyle">@style/Widget.ActionBar</item> </style> 

Themes-v11.xml

 <style name="AppTheme" parent="AppBaseTheme"> <item name="android:actionBarStyle">@style/Widget.ActionBar</item> </style> 

Styles.xml

 <style name="Widget.ActionBar" parent="@style/Widget.AppCompat.ActionBar"> <item name="android:background">@color/actionbar_background</item> <item name="background">@color/actionbar_background</item> </style> 

Actividad onCreate()

 FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); myFragment = new WallFragment(); fragmentTransaction.add(android.R.id.content, myFragment, myFragment.FRAGMENT_TAG); fragmentTransaction.commit(); 

Estoy utilizando Gradle para incluir la biblioteca AppCompat ActionBar en mi aplicación.

 compile 'com.android.support:appcompat-v7:18.0.+' 

Al cargar el hierarchyviewer en el directorio de herramientas del SDK de Android, parece que la vista en la que coloca fragmentos es android.R.id.content en dispositivos 4.x y es R.id.action_bar_activity_content en 2.3 dispositivos que ejecutan la biblioteca ActionBar de AppCompat.

Por desgracia, parece que es posible que tenga que basarse en versiones basadas en plataformas al agregar fragmentos. Esto se sugiere en http://code.google.com/p/android/issues/detail?id=58108 (no está seguro acerca de los dispositivos 3.x aún).

Utilice este método para obtener la vista adecuada para agregar Fragment . Mi prueba también muestra que los dispositivos 3.x actúan de forma similar a los dispositivos 2.3 cuando se utiliza la biblioteca AppCompat ActionBar.

 public static int getContentViewCompat() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH ? android.R.id.content : R.id.action_bar_activity_content; } 

Imágenes de hierarchyviewer

  • 2,3

2,3

  • 4.x

4.x

  • Congelación de la interfaz de usuario cuando la transacción de fragmentos
  • FragmentManager.getFragmens (). Size () no disminuyen después de FragmentTransaction.remove (Fragment)
  • ¿Cómo se manejan las transacciones de fragmentos cuando el estado de la actividad principal está destinado a ser guardado?
  • FragmentTransaction.replace reemplaza sólo el primer Fragment en un contenedor
  • Fragmento de Android La transacción con animación provoca que el flash blanco
  • Cómo mostrar el fragmento de entrada sobre el fragmento de salida mientras se anima.
  • Android: Fragmento de diálogo y problemas de Backstack
  • ¿Qué hace exactamente FragmentManager y FragmentTransaction exactamente?
  • android.R.id.content como contenedor para Fragment
  • Fragmento de Android: ¿se mueve de una vista a otra?
  • Android - Hacer traducciones y objectAnimator en el mismo archivo XML
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.