2011-06-06 15 views

Respuesta

14

Hay un método especial en ListView - setEmptyView(). Puede encontrar ejemplos de cómo usarlo here o here.

Upd: segundo enlace no está disponible ahora. Aquí está la cita del artículo:

Cuando configura la "vista vacía" de ListView mediante programación, puede terminar preguntándose por qué su vista vacía en realidad no aparece cuando la lista está vacía.
Si esto sucede, entonces lo que olvidaste es que debes agregar manualmente tu vista vacía a tu jerarquía de vistas, porque ListView no lo hará por ti. Aunque es obvio cuando lo piensas, la documentación no menciona este detalle, y Google muestra que al menos una persona tuvo el problema.

Aquí está el código con las líneas que es demasiado fácil de olvidar en los números 4 y 5 ...

TextView emptyView = new TextView(context); 
emptyView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
emptyView.setText(“This appears when the list is empty”); 
emptyView.setVisibility(View.GONE); 
((ViewGroup)list.getParent()).addView(emptyView); 
list.setEmptyView(emptyView); 
7

Sólo tienes que configurar una imagen de fondo en la disposición de los padres y luego establecer el color de la ListView a totalmente transparente:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    style="@style/Main" android:background="@drawable/background"> 
    <ListView android:cacheColorHint="#00000000" .../> 
</LinearLayout> 
0

Puede establecer un dibujable como fondo con ListView.setBackgroundDrawable()

+0

Solo para tener en cuenta que, dado que esta pregunta sigue apareciendo como un resultado principal, este método quedó obsoleto en el nivel 16 de la API. – QuickNull

0

Debe verificar antes de pasar array/arraylist en adapter, si la longitud de array/arraylist es 0 y luego agregue esta imagen a su diseño principal.

3

Leer el documentation of the ListActiviy. Puede definir una vista que se mostrará automáticamente cuando la lista esté vacía y no tenga elementos. La vista para la lista vacía debe tener el id android:id/empty.

Así que no hay necesidad de jugar con el fondo.

Cuestiones relacionadas