Intereting Posts
Что такое токен API Применение тени и текста для заголовка и пункта меню в панели действий Шерлока Активность продолжается после финиша (); Android ListView addHeaderView () nullPointerException для предопределенных представлений, определенных в XML Uid … не имеет android.permission.UPDATE_APP_OPS_STATS Как получить имена приложений, видимых на главном экране в Android? Как получить местоположение GPS через SMS Андроидная перехват последних приложений IntelliJ / Android -> "java: требуется постоянное выражение" на случай R.id.viewId Запустить Android SDK manager – Каталог инструментов не существует? макинтош Android – Как изменить значение счетчика без запуска setOnItemSelectedListener Архитектура Android-приложений – RxJava Разбор html с Jsoup и удаление пробелов с определенным стилем Настройка файлов cookie Android WebView из файла HTML в каталоге ресурсов Как разделить Epub Html на страницы в зависимости от размера экрана

Темы 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-приложение 🙂