Я хочу показать кнопку в конце представления списка Android. Как я могу достигнуть этого?
Я не хочу прикреплять его к нижнему использованию действия alignparentbottom="true"
. Используя layout_below
не работает на меня также.
Мой текущий XML:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/main_bg">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false"
android:cacheColorHint="#ff6a00"
android:divider="#ff8f40"
android:dividerHeight="1px" />
</LinearLayout>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="50sp"
android:background="#676767"
android:orientation="vertical">
<Button
android:layout_width="100px"
android:layout_height="wrap_content"
android:id="@+id/btnGetMoreResults"
android:layout_marginLeft="10px"
android:text="Get more" />
</RelativeLayout>
</RelativeLayout>
Вы можете использовать ListView # addFooterView () , чтобы добавить View
внизу ListView
.
Вы, конечно, можете использовать специальный адаптер и указать элемент нижнего колонтитула. Но вам, вероятно, также удастся разместить его внизу ScrollView
и растянуть ListView
по вертикали до содержимого:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/main_bg">
<ScrollView
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false"
android:cacheColorHint="#ff6a00"
android:divider="#ff8f40"
android:dividerHeight="1px"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="50sp"
android:background="#676767"
android:orientation="vertical">
<Button android:layout_width="100px"
android:layout_height="wrap_content"
android:id="@+id/btnGetMoreResults"
android:layout_marginLeft="10px"
android:text="Get more" />
</RelativeLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
1 Если вы хотите добавить Button в качестве последнего элемента представления списка
Вы должны создать пользовательский ListAdapter для вашего ListView, который создаст представление с Button в методе getView. Вы должны решить, как вернуть ваше пользовательское представление для последнего элемента, вы можете жестко закодировать его (вернуть количество элементов +1 в методе getCount и вернуть пользовательское представление в getView, когда позиция > количества элементов) или вы можете добавить элемент в структуру, из которой вы будете брать данные (массив, курсор и т.д.). ) и проверить, имеет ли поле элемента определенное значение
2 Если вы хотите добавить элемент ниже представления списка
Вы должны использовать атрибут android:layout_width и сделать ListView и "пустой" TextView (вы должны использовать его, чтобы показать пользователям, что список пуст и рендеринг представления завершен) layout_weight больше, чем buttons layout_weight
Проверьте, как это сделано в Transdroids search Activity http://code.google.com/p/transdroid/source/browse/trunk/res/layout/search.xml