0

У меня есть фрагмент Android, в котором есть Вертикальный LinearLayout с двумя макетами внутри него: Другой внутренний вертикальный LinearLayout (который занимает не менее половины экрана) и ListView (который показывает несколько меньших видов). Хороший способ подумать об этом - это что-то вроде сообщения в facebook, а также несколько комментариев, показанных ниже.Как сделать весь экран содержащим (LinearLayout + ListView) прокручиваемым

Проблема, с которой я сталкиваюсь, заключается в том, что внутренний LinearLayout не прокручивается, и поэтому части ListView остаются вне экрана, и нет возможности прокручивать экран, чтобы увидеть весь ListView (возможно, внутренняя компоновка возьмите весь экран). Также известно, что размещение всего макета внутри ScrollView является плохой практикой.

Я знаю, что одним из решений является создание всего макета ListView с первой ячейкой, которая будет внутренней LinearLayout, а затем ячейками из исходного ListView. Это, однако, имеет свои проблемы: сложнее перерабатывать представления в ListView, и, как правило, я также рассматриваю это как плохую практику, когда одна ячейка имеет другое поведение из всех других ячеек в ListView.

Есть ли лучшее решение для этого? Я могу себе представить, что это типичная проблема, и я надеюсь найти лучшее решение, чем выше.

+0

Если части списка находятся вне экрана, у вас есть ошибка в вашем xml. Или вы должны использовать относительный макет вместо линейного, чтобы этого не произошло. Кроме того, если вы действительно хотите, чтобы верхний вид прокручивался вместе со списком, правильный способ - сделать его заголовком списка, а не делать его ячейкой в ​​списке. –

ответ

1

Это может помочь вам:

ListView yourListView = new ListView(this); 
yourListView.addHeader(getHeaderView()); 

Вы также можете добавить колонтитула в ListView. Когда вы это сделаете, заголовок (или нижний колонтитул) станет частью ListView, и поэтому он будет прокручиваться. Вы можете найти документ здесь: http://developer.android.com/reference/android/widget/ListView.html.

+0

Спасибо. Я знал о верхних и нижних колонтитулах. Это просто не пришло мне в голову, когда я искал решение. Это именно то, что я искал. – shahins

Смежные вопросы