#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 (оно используется только при загрузке дополнительных данных), у меня есть два разделителя внизу. Думаю, для этого нет «исправления» 🙂