Лучшие практики, объединяющие списки и представления вне списка, такие как Market - PullRequest
3 голосов
/ 10 января 2010

Я пытаюсь решить проблему, которая, по-видимому, возникает у многих разработчиков Android, а именно, как разбрасывать списки с данными, не входящими в список, в одной большой прокручиваемой панели.

Модель, которую я имею в виду, это экран для отдельного приложения в Маркете. У вас есть большое описание, список нескольких лениво загруженных комментариев, а затем некоторые отдельные элементы, которые делают разные вещи, такие как посещение веб-страницы разработчика, вызов их и т. Д. А между ними все - хорошие заголовки разделов.

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

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

Что мне делать?

Ответы [ 3 ]

4 голосов
/ 10 января 2010

Взгляните на мою MergeAdapter, которая предназначена для обработки подобных сценариев.

2 голосов
/ 25 января 2011

Почему бы не использовать заголовок? Это просто. Определите содержимое заголовка в отдельном макете. В вашем макете активности нет ничего, кроме ListView, которое вы хотите внизу. Нет просмотра прокрутки!

Тогда звоните

View headerView = getLayoutInflater().inflate(R.layout.header_layout, null);
ListView listView = (ListView) findViewById(R.id.my_list_view);
listView.addHeaderView(headerView, null, false);   

Крайне важно назвать эту форму addHeaderView, чтобы заголовок был отключен. В противном случае его можно выбрать, что выглядит совершенно странно.

0 голосов
/ 10 января 2010

Пример Марка сработает. в основном вам нужен адаптер с различными типами просмотра. Еще один хороший пример http://jsharkey.org/blog/2008/08/18/separating-lists-with-headers-in-android-09/ это может работать лучше, чем у Марка, потому что вы хотите иметь разделители и группировать вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...