Android ListActivity — как добавить представление под ListView?

#android #android-layout #android-listview

#Android #android-layout #android-listview

Вопрос:

Я пытаюсь поместить представление ProgressBar под ListView для ListActivity. Я хочу, чтобы оно всегда было ниже последней строки в ListView.

Панель выполнения, которая помещается в LinearLayout, появляется до тех пор, пока список (который заполняется адаптером во время выполнения) не выходит за пределы экрана. Как только список становится больше экрана, панель выполнения больше не отображается.

Макет xml выглядит следующим образом:

 <?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>
  

Это невозможно с LinearLayout? Любая помощь приветствуется.

Комментарии:

1. Нижние колонтитулы прокручиваются вместе со listview, если вы хотите, чтобы представление было закреплено внизу экрана, под listview, задайте вес в listview

Ответ №1:

Вы должны добавить нижний колонтитул с помощью :

 list.addFooterView(footerView);
  

или сделать это вручную, но затем рассмотреть возможность использования относительных макетов, есть гораздо более мощные, чем линейные макеты. А затем разместите свой нижний колонтитул под списком, или, что еще лучше, разместите свой список и свой пустой вид над вашим нижним колонтитулом.

Комментарии:

1. Спасибо, вид нижнего колонтитула — это именно то, что я искал. Единственная небольшая проблема, с которой я столкнулся сейчас, заключается в том, что я установил разделитель android: в моем ListView, и когда я устанавливаю для footerView значение visibility = GONE (оно используется только при загрузке дополнительных данных), у меня есть два разделителя внизу. Думаю, для этого нет «исправления» 🙂