Разметка видов под ScrollView / ListView - PullRequest
1 голос
/ 30 июля 2011

Мой вопрос немного конкретен, у меня есть ListView элементов над кнопкой внутри диалога. Я хочу, чтобы мой ListView никогда не превышал 280 dip, но всегда должен иметь кнопку под ListView, независимо от размера этого ListView. Меня беспокоит то, что когда диалог переключается в ландшафтный режим, кнопка исчезает, потому что она вытесняется из поля зрения представлением ListView, которое я установил для android:layout_height="280dip". Очевидно, это означает, что ListView всегда будет иметь размер 280 dip, но есть ли способ сделать так, чтобы ListView мог изменять свой размер, чтобы он всегда мог соответствовать кнопке под ним независимо от размера / размеров экрана? Я не хочу заполнять родительский элемент высоты в диалоговом окне, потому что не хочу, чтобы диалоговое окно полностью растягивалось в портретном режиме. Я уверен, что есть простое решение для этого, но я не знал, как это выразить более общим образом.

Ответы [ 2 ]

4 голосов
/ 30 июля 2011

Если вы хотите, чтобы View занимал остальную часть макета, вы должны установить вес для View.

Попробуйте задать следующие параметры для ListView и посмотрите, что произойдет.

android:layout_weight="1"
android:layout_height="0dp"

2 голосов
/ 30 июля 2011

Если вы хотите, чтобы кнопка всегда находилась прямо под списком и оставляла его видимым, несмотря на изменяющиеся размеры экрана, просто создайте новый макет, содержащий кнопку, и инициализируйте этот макет в своем Java-коде. Затем выполните listView1.addFooterView(layoutView), и раскладка с кнопкой будет прикреплена к нижней части списка. Это может помочь вам в настройке представления нижнего колонтитула для просмотра списка.

View footerView = ((LayoutInflater)MyActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
listView1.addFooterView(footerView);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...