2011-05-31 11 views
9

Estoy tratando de poner una vista ProgressBar debajo de un ListView para una ListActivity. Quiero que siempre esté debajo de la última fila en la lista Vista.Android ListActivity: cómo agregar una vista debajo de ListView?

ProgressBar, que se coloca en LinearLayout, aparece, siempre que la lista (que se llena con un adaptador en tiempo de ejecución) no exceda la pantalla. Tan pronto como la lista sea más grande que la pantalla, ProgressBar ya no estará visible.

El diseño XML tiene el siguiente aspecto:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/db1_root" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical"> 

<!-- Title bar --> 
<LinearLayout 
    style="@style/TitleBar" > 
    <TextView 
     style="@style/TitleBarText" 
     android:text="Some title text" /> 
    <ImageButton 
     style="@style/TitleBarAction" 
     android:contentDescription="@string/description_search" 
     android:src="@drawable/title_search" /> 
</LinearLayout> 

<!-- Content --> 
<LinearLayout 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" > 

    <ListView 
     android:divider="@drawable/category_item_divider" 
     android:dividerHeight="@dimen/list_divider_height" 
     android:layout_height="wrap_content" 
     android:id="@+id/android:list" 
     android:layout_width="fill_parent" 
     android:layout_weight="1" />   
    <TextView 
     android:id="@+id/android:empty" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="@string/category_no_items" />     
</LinearLayout>  

<!-- Progress bar --> 
<LinearLayout 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" > 

    <ProgressBar 
     android:id="@+id/productlist_progressbar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

</LinearLayout> 

esto no es posible con un LinearLayout? Cualquier ayuda apreciada.

+0

Pie de página desplazarse con la vista de lista, si desea que la vista se fije en la parte inferior de la pantalla, debajo de lista, establecer el peso en la lista – urSus

Respuesta

12

Usted debe agregar un pie de página usando:

list.addFooterView(footerView); 

o hacerlo manualmente, pero luego considerar el uso de diseños relativos, hay mucho más potente que los diseños lineales. Y luego coloque su pie de página debajo de la lista, o mejor, coloque su lista y su vista vacía encima de su vista de pie de página.

+0

Gracias, la vista de pie de página es exactamente lo que estaba buscando. El único problema pequeño que tengo ahora es que he configurado un separador android: en mi ListView, y cuando configuro footerView en visibility = GONE (solo se usa cuando se cargan más datos), tengo dos divisores en la parte inferior. Supongo que no hay "solución" para eso :-) – Bachi

Cuestiones relacionadas