Как изменить textColorPrimary в теме? - PullRequest
8 голосов
/ 28 июня 2010

Я изменяю тему действия в onCreate, используя setTheme (я делаю это еще до вызова super.onCreate (), так как это должно быть более надежно).

Это работаетв том смысле, что он меняет цвет фона и переднего плана.Однако в моем макете есть несколько элементов, использующих такие стили, как textAppearanceLarge.Теперь Android textAppearanceLarge внутренне использует textPrimaryColor, который по-прежнему не изменяется в моей теме.

Я попытался переопределить основной цвет текста в моей теме, но, похоже, это не работает.является важной частью темы:

<style name="Theme.MyApp.White">
   <item name="android:background">@android:color/white</item>
   <item name="android:textColor">#000000</item>
</style>

Фон выглядит белым, обычные TextViews выглядят черными ... но TextViews, использующие textAppearanceLarge, белые и поэтому невидимы (белым на белом).1011 * Я пробовал такие вещи:

   <item name="android:ColorPrimary">#000000</item>
   <item name="android:textColorPrimary">#000000</item>
   <item name="android:attr/textColorPrimary">#000000</item>

Но никто из них ничего не делает.Что за фокус?

Ответы [ 3 ]

7 голосов
/ 18 октября 2010

В качестве обходного пути, вместо использования textAppearanceLarge в макете (если вы используете XML для создания макета), определите свой собственный стиль textAppearanceLarge в файле styles.xml, который эмулирует стиль по умолчанию для Android, кроме Вы можете изменить цвет на белый.

XML-макет:

<!-- example textview -->
<TextView style="@style/large" android:text="text goes here"></TextView>

затем в styles.xml

<style name="large">
    <item name="android:textColor">@android:color/white</item>
    <!-- other necessary items here like font etc.-->
</style>
4 голосов
/ 10 февраля 2011

Единственная разница между "стилем" и "темой" - это область, в которой применяется стиль. Стиль, примененный к Деятельности, называется Темой.

Вот хорошая рецензия на тему: http://brainflush.wordpress.com/2009/03/15/understanding-android-themes-and-styles/

1 голос
/ 19 октября 2010

Оказывается, я лаю не на том дереве. Переопределение цветов и все работало просто отлично. Однако, определив android:background в моей теме, все просто испортилось, и весь текст выглядел белым, несмотря на то, что я переопределил все цвета (включая textColorPrimary). Пропустив android:background сделал свое дело.

...