Как создать фиксированный нижний колонтитул в макете android?
Я использую следующий код для отображения кнопки внизу действия.
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
>
<Button android:id="@+id/btnGetMoreResults"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Get more"
/>
</RelativeLayout>
и listview над ним. когда я показываю больше данных в списке, эта кнопка пульта перемещается вниз. Можно ли мне указать, как я могу исправить ее в нижней части действия?
любая помощь будет оценена.
Ответы
Ответ 1
Атрибут android:layout_alignParentBottom
должен быть объявлен в элементе RelativeLayout
не в самом RelativeLayout
(если в нем нет другого RelativeLayout
).
Вы должны сделать что-то подобное: ListView
внутри RelativeLayout
также:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
<ListView ...>
<Button android:id="@+id/btnGetMoreResults"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Get more"
android:layout_alignParentBottom="true" />
</RelativeLayout>
Ответ 2
Ответ, выбранный как правильный, неисправен, кнопка скроет нижнюю часть списка. Правильный способ состоит в том, чтобы сначала объявить кнопку и расположить список над кнопкой.
<Button android:id="@+id/btnGetMoreResults"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Get more"
android:layout_alignParentBottom="true"/>
<ListView
...
android:layout_above="@id/btnGetMoreResults"/>
Ответ 3
Если у вас были, например, все прокручиваемые элементы в ScrollView, вы должны сделать следующее:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/rootElement"
>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<!-- texts, buttons, images and anything that you want to scroll -->
</ScrollView>
<LinearLayout
android:orientation="vertical"
style="@style/footer"
android:id="@+id/footer"
android:layout_alignParentBottom="true"
>
</LinearLayout>
</RelativeLayout>
Обратите внимание, что если вы хотите, чтобы нижний колонтитул был исправлен, вы не должны помещать его в ScrollView, где будет размещаться прокручиваемый контент. Сделайте его дочерним по отношению к RelativeLayout и установите для параметра layout_alignParentBottom
значение true. Возможно, вам понадобится добавить дополнение в нижней части ScrollView в этом случае (так что последний элемент не будет скрыт нижним колонтитулом).
Идея аналогична для элементов, отличных от ScrollView