Темы Android ListView

Есть много способов стилей ListViews, чтобы придать им элегантный вид, но все они связаны с модификацией адаптера или написанием дополнительного кода.

С выпуском Android 4.0, к сожалению, все должно измениться. Google отполировал свою тему Голо и дал ей новый взгляд. Теперь всем разработчикам предлагается использовать его, чтобы все приложения выглядели одинаково.

И вот проблема. Google выкатил 4.0, но все еще есть люди, использующие старые версии Android. Мы не можем просто оставить наши предыдущие пользовательские темы приложений и использовать Holo, потому что это испортит визуальный опыт для пользователей со старыми устройствами. И мы не можем заставить 4.0 пользователей просто использовать Holo, потому что будем честными – это все еще не идеально.

Цель состоит в том, чтобы использовать встроенную систему тем и подготовить некоторые альтернативы для Holo, которые отлично смотрятся на всех устройствах. Затем мы можем просто переключаться между Holo и нашими темами только с помощью setTheme () и никаких дополнительных проблем. К несчастью, это не так просто. Мы ограничены возможностями существующей системы тем, и некоторые вещи просто трудно сделать. И вот мой вопрос.

Принимая во внимание все, что я упомянул, как мы можем управлять просмотром ListView? Я не могу понять, как:

  • Создайте список с закругленными углами и убедитесь, что фон селектора не разрушает его при выборе первого / последнего элемента
  • Создавать закругленные углы не для списка, а разделы, разделенные заголовками, что-то вроде этого: Введите описание изображения здесь

Решение должно влиять на ListViews, созданный PreferenceActivity, без каких-либо дополнительных строк кода. Все должно содержаться в теме:

<theme name="SampleTheme" parent="android:Theme"> ... </theme> 

Я прошу не публиковать решения, которые не используют стили и темы. Их можно легко найти в других вопросах, здесь, в разделе «Переполнение стека».

Заранее спасибо.

Я вижу два способа решить эту проблему.

Один из них – просто использовать тему для своих списков, определяющую фон, который, в свою очередь, представляет собой 9 патчей с закругленными углами или заданной вами формой xml (с закругленными углами). Это будет иметь побочный эффект селектора строк списка, отображающий «поверх» указанного вами фона, поэтому он может испортить эффект. Это довольно просто реализовать.

Второй вариант состоит в том, чтобы просто добавлять верхние и нижние колонтитулы в списки, в которых есть фоны, которые являются селекторами с закругленными углами сверху (и снизу). Вы можете указать стили для них, если хотите. Извините за этот последний комментарий, но я должен был сказать это. Пожалуйста, не пытайтесь сделать ваше приложение похожим на iPhone-приложение 🙂