Как разрешить пользователям выбирать темы в представлении списка Android? - PullRequest
2 голосов
/ 10 июня 2010

У меня есть список с двумя метками, заголовком и субтитрами.Я хочу иметь темный и светлый фон в качестве пользовательских настроек.Заголовок имеет textAppearanceMedium, а субтитры имеют textAppearanceSmall.Я хочу, чтобы у стиля MyTheme.Dark был текст белого цвета, а у MyTheme.Light текст черного цвета.Есть ли способ определить несколько атрибутов textAppearance для одного и того же виджета TextView?

<style name="MyTheme.Dark">
    <item name="android:windowBackground">@color/black</item>
    <item name="android:colorBackground">@color/black</item>
    <item name="android:background">@color/black</item>
    <item name="android:divider">@color/white</item>
        --cannot put textAppearance here since it is different for title and subtitle
    </style>

Ответы [ 3 ]

4 голосов
/ 02 января 2011

Для дальнейшего использования ...

В значениях / themes.xml:

<style name="MyTheme.Dark">
    <item name="textColorTitle">@color/white</item>
</style>
<style name="MyTheme.Light">
    <item name="textColorTitle">@color/black</item>
</style>

В значениях / attrs.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <attr
        name="textColorTitle"
        format="reference|color" />
</resources>

В макете /my_list_row.xml, используйте значение textColorTitle для вашего цвета текста, например:

android:textColor="?textColorTitle"

Дайте мне знать, если это не работает.Это работает для меня.

0 голосов
/ 13 июля 2010

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

0 голосов
/ 10 июня 2010

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

<style name="MyTheme.Dark">
    <item name="android:windowBackground">@color/black</item>
    <item name="android:colorBackground">@color/black</item>
    <item name="android:background">@color/black</item>
    <item name="android:divider">@color/white</item>
    <item name="android:textColor">@color/white</item>
</style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...