Intereting Posts
Android-эмулятор не запускается Как я могу изменить размер шрифта TextView Динамически в зависимости от размера родительского вида Как обрабатывать жесты салфетки для gridview (android) Фрагмент Android Studio – onButtonPressed Android – Маскирование растрового изображения с использованием другого растрового изображения Запуск и остановка широковещательного приемника Фрагменты накладываются на кнопку «Назад» Самый быстрый способ протестировать модифицированный исходный код Android? Как сохранить активность во время выключения экрана? Как использовать «adjustResize» для настройки вида на Android с помощью телефонной заставки? Эннументы и андроидная аннотация intDef Разработка мобильного сайта. Когда начать? Адаптер Android Gallery с MultiTouch? Пользовательская галерея или пользовательский ImageView? Google plus для android: недопустимые учетные данные Как запустить приложение в разных версиях sdk в android

Android ListView со сложным заголовком

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

Заголовок состоит из

  • TextView с жирным шрифтом, черным прозрачным фоном и закругленными углами
  • TextView с обычным текстом, черный прозрачный фон
  • ImageView
  • Нажатие кнопки (на самом деле ImageView с onClick) и разделитель

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

Кроме того, дизайн ломается (поскольку заголовок может быть прозрачным, сам ListView отсутствует. Возможно, это можно решить, добавив больше стилей к самому ListView и его записям (которые не должны быть прозрачными), но у меня есть Впечатление Я просто достигаю Limit ListViews здесь.

Это можно сделать? Кто-нибудь знает о каких-либо приложениях (или лучше, примеры кода), которые имеют похожий сложный заголовок? Все другие примеры, которые я смог найти, – это тривиальные заголовки: кнопки, текстовые изображения или изображения (онлайн и на SO) с едва ли интересным стилем.

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

  • Main.xml с фоновым изображением и одним списком ListView с маркой 20dip и некоторым определенным стилем:

    <item name="android:cacheColorHint">#00000000</item> <item name="android:scrollbars">@null</item> <item name="android:background">@android:color/transparent</item> 
  • Headerlayout.xml, содержащий линейный макет (вертикальный), содержащий TextView, ImageView и другой TextView. Первый TextView оформлен с закругленными вершинами, как текстовые, так и прозрачные, и кликлайнер на изображении.

  • (Аналогичный стиль нижнего колонтитула)
  • Пользовательская запись для каждого списка с твердым белым фоном.

Верхний / нижний колонтитулы добавляются примерно следующим образом

 ListView list = (ListView) findViewById(R.id.list); View header1 = getLayoutInflater().inflate(R.layout.listheader, null, false); View footer = getLayoutInflater().inflate(R.layout.listfooter, null, false); ImageView image = (ImageView) header1.findViewById(R.id.image); list.addHeaderView(header1, null, false); list.addFooterView(footer, null, false); list.setAdapter(new MenuAdapter()); 

Ничто из этого не является действительно особенным. Это в основном вопрос того, что нужно делать в правильном порядке, убирать и правильно стилизовать.

Мое предложение состояло в том, что вы создадите пользовательский вид для этого слишком сложного элемента списка списка. По-видимому, это то, что Android разработчики в Google IO тоже предложил. Если вы можете сделать это в пользовательском режиме, все ваши проблемы будут решены.