setEmptyView () no parece funcionar para (Sherlock) ListFragment

Tengo un ListFragment y quiero fijar su opinión vacía, así que utilizo el código siguiente:

 View emptyView = getLayoutInflater().inflate(R.layout.collection_empty_view, null); detailFragment.getListView().setEmptyView(emptyView); 

para el siguiente diseño xml:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/empty" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <TextView android:id="@+id/tv_empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" android:text="@string/empty_collection" /> <Button android:id="@+id/btn_add_legislation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="addText" android:text="@string/action_add_text" /> </LinearLayout> 

¡Pero nada aparece!

He intentado detailFragment.getListView().setEmptyText() , y que funcionó! ¿Estoy haciendo algo mal?

La vista vacía debe estar en la misma jerarquía de vistas que la vista de lista. Inflar de esa manera no funcionará.

Generalmente creo un diseño en el siguiente formato:

 <Layout> <ListView/> <View android:id="@+id/empty"/> </Layout> 

Donde la vista vacía es la Vista que quiero usar como mi "vista vacía". Entonces en encendido crea consigo una referencia a la visión vacía y llamo a setEmptyView () con esa referencia.

Aquí hay un ejemplo de la documentación de Android (consulta la documentación , debería ser aplicable a SherlockListFragment):

  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="8dp" android:paddingRight="8dp"> <ListView android:id="@id/android:list" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00FF00" android:layout_weight="1" android:drawSelectorOnTop="false"/> <TextView android:id="@id/android:empty" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FF0000" android:text="No data"/> </LinearLayout> 

Puedes probar algo que estoy haciendo en un fragmento de mi aplicación. No sé si es una buena práctica, pero funciona!

 View emptyView = getActivity().getLayoutInflater().inflate(R.layout.empty, null); getActivity().setContentView(emptyView); 
  • Android.view.InflateException: Línea de archivo XML binario # 9: Error al inflar la clase <unknown>
  • Custom ListView Android
  • ArrayAdapter número de elementos en conjunto de datos es cero
  • Inflar diseño en ListItem basado en la variable específica ListItem
  • Galería de imágenes de desplazamiento horizontal de Android
  • Excepción OutOfMemory aparece mientras se desplaza la lista de imágenes
  • Android ListView desplazamiento rápido con secciones: texto de sección demasiado largo
  • Adaptador personalizado para la vista de lista
  • Arrastrar y soltar la clasificación de adaptador de cursor y adaptador de lista
  • SwipeRefreshLayout con múltiples ListViews
  • Gesture Listener onFling No actúa Consistant
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.