Я хочу показать кнопку под ListView
. Проблема в том, что если ListView
расширяется (добавляются элементы ...), кнопка выталкивается за пределы экрана.
Я пробовал использовать LinearLayout
с весами (как это было предложено в Android: почему для View нет maxHeight? ), Но либо я неправильно указал веса, либо это просто не сработало.
Кроме того, я где-то нашел подсказку использовать RelativeLayout
. ListView
Затем будет установлено над кнопкой с android:layout_above
парами.
Проблема в том, что я не знаю, как потом разместить кнопку. В найденном мною примере вид ниже ListView
был настроен с помощью android:layout_alignParentBottom
, но я не хочу, чтобы моя кнопка цеплялась за нижнюю часть экрана.
Есть идеи, кроме использования метода setHeight и некоторого расчета необходимого места?
Изменить: я получил много полезных ответов.
Решение bigstone и user639183 работало почти идеально. Однако мне пришлось добавить дополнительный отступ / маржу в нижнюю часть кнопки, так как она все равно будет вытолкнута наполовину за пределы экрана (но затем остановлена)
Ответ Адинии с относительной компоновкой подойдет только в том случае, если вы хотите, чтобы кнопка была закреплена в нижней части экрана. Это не то, что я планировал, но все же может быть полезно другим.
Решение AngeloS было тем, что я выбрал в конце, поскольку оно просто создавало желаемые эффекты. Тем не менее, я внес два небольших изменения
LinearLayout
вокруг кнопки:Во-первых, поскольку я не хотел, чтобы в моем макете были какие-либо абсолютные значения, я изменил его
android:layout_height="45px"
наwrap_content
, который тоже отлично работает.Во-вторых, поскольку я хотел, чтобы кнопка располагалась по центру по горизонтали, что поддерживается только по вертикали
LinearLayout
, я изменил android: direction = "horizontal" на "vertical".
AngeloS также заявил в своем первоначальном посте, что он не уверен, имел ли какой-либо эффект
android:layout_weight="0.1"
параметр вLinearLayout
окруженииListView
; Я просто попробовал, и это действительно так! Без этого кнопка снова выталкивается за пределы экрана.
android:layout_alignParentBottom="true"
. Но для ясности: хотите ли вы, чтобы кнопка оставалась прикрепленной к нижней части ListView, когда элементов мало? Если да, посмотрите, что говорит Рич.