Я хочу, чтобы кнопки OK
/Cancel
были закреплены внизу (даже если в списке больше предметов, которые могут быть показаны на экране). Вот что она в настоящее время выглядит следующим образом:Как установить кнопки в нижней части макета?
Кнопки находятся на вершине, а не на дне.
Схема, которая содержит кнопки:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="true"
android:id="@+id/buttons_layout">
<TableRow>
<Button
android:id="@+id/btnOK"
android:background="@color/pomegranate"
android:text="OK"
android:layout_gravity="fill_horizontal"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btnCancel"
android:background="@color/wet_asphalt"
android:text="Cancel"
android:layout_weight="1"
android:layout_gravity="fill_horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>
Композиционный макет:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@+id/options_list"
android:layout_width="fill_parent"
android:layout_height="match_parent">
</ListView>
<include layout="@id/buttons_layout"
android:layout_alignParentBottom="true"
android:layout_height="match_parent"
android:layout_below="@id/options_list"/>
</RelativeLayout>
Я следовал указаниям, я читал на http://developer.android.com/guide/topics/ui/layout/relative.html
Я попробовал этот ответ - https://stackoverflow.com/a/6285438/168719 - мне это не помогло.
Я подозревал, что это может не сработать, потому что просмотр списка не «знает», насколько высок он, поэтому макет кнопки не знает, где разместить себя. Но я исключил это, установив высоту ListView на произвольное значение, например, 100dp. Кнопки все еще накладываются над ним.
Я искал все атрибуты макета, но я не могу заставить его работать.
Помимо решения, я также хотел бы знать, почему моя не работает ...
Почему вы не просто изменить RelativeLayout к LinearLayout с ориентацией по вертикали? Или просто поместите кнопку в макет со списком и поместите их внизу? – tyczj
1. Я сделал это, но теперь представление списка выталкивает кнопки из представления (если вы не установили высоту ListView на фиксированное значение). Я также хотел бы знать, что было неправильным в отношении использования «RelativeLayout». 2. Я хочу повторно использовать компоновку кнопок. –