Лучшие практики сочетания представлений со списками и без списков, например «Маркет».

StackOverflow https://stackoverflow.com/questions/2036430

  •  19-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

Другие советы

Почему бы не использовать заголовок?Это просто.Определите содержимое заголовка в отдельном макете.Макет вашей активности не содержит ничего, кроме 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 чтобы заголовок был отключен.В противном случае его можно выбрать, что выглядит совершенно странно.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top