Я пытаюсь поместить все мои стили в тему для своего приложения. Однако у меня возникают проблемы с изменением textColor в TextView. Это из моего файла attrs.xml.Android TextView изменить textColor с темой
<?xml version="1.0" encoding="utf-8"?>
<declare-styleable name="flat">
<attr name="detail_name_view" format="reference" />
</declare-styleable>
Это из моего styles.xml файл
<style name="flat_theme" parent="android:Theme.NoTitleBar">
<item name="detail_name_view">@style/flat_detail_name</item>
</style>
<style name="flat_detail_name" parent="@android:style/Widget.TextView">
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
<item name="android:textColor">@color/detail_group_black</item>
<item name="android:textSize">16sp</item>
<item name="android:singleLine">true</item>
<item name="android:ellipsize">end</item>
</style>
И это от моего layout.xml файла
<TextView
android:id="@+id/detail_name"
style="?detail_name_view"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_gravity="left|center_vertical"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:gravity="left|center_vertical" />
У меня также есть манифест, правильно настроенный со следующим.
<application
android:name="com.example.blah"
android:icon="@drawable/blah"
android:label="@string/app_name"
android:theme="@style/flat_theme"
Цвет никогда не изменяется на "@ color/detail_group_black". Я что-то пропустил? Или проблема в том, что Android уже создает атрибут textColor для TextView, и поэтому стиль не переопределяет его? Моя стратегия-атрибут-тема, похоже, хорошо работает для остальной части приложения, но не для этого. Есть идеи? Заранее спасибо.
Кроме того, если мне это поможет, я бы предпочел не создавать собственный класс TextView только для этого изменения: его довольно большой проект, и я не уверен, какие проблемы я мог бы запустить, если я расширяю TextView для все.
Редактировать Кроме того, если я изменю TextView иметь стиль = «@ стиль/flat_detail_name_view», он отлично работает. Причина, по которой я не хочу этого делать, заключается в том, что я могу изменить внешний вид этих текстовых просмотров, просто изменив тему. Использование style = "? Something_else" работает на всех моих других взглядах, поэтому я действительно не понимаю этого, и я, вероятно, пропустил что-то простое?
Что такое «? Detail_name_view» в стиле TextView? –
style = "? Detail_name_view" - ссылка на атрибут detail_name_view. –