Темы Android ListView

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

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

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

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

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

  • создать список с закругленными углами и убедиться, что фон селектора не портит его при выборе первого/последнего элемента
  • создать закругленные углы не для списка, а для разделенных секций по заголовкам, примерно так:enter image description here

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

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

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

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

9
задан Urban 25 May 2012 в 08:10
поделиться