すべてのスタイルをアプリのテーマに入れようとしています。ただし、TextView で textColor を変更するのに問題があります。これは私のattrs.xmlファイルからのものです。
<?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 が既に TextView の textColor 属性を作成しているという問題があり、それがスタイルがそれをオーバーライドしていない理由ですか? 私の属性テーマ戦略は、アプリの残りの部分ではうまく機能しているようですが、これはそうではありません. 何か案は?前もって感謝します。
また、この変更のためだけにカスタム TextView クラスを作成したくありません。これはかなり大きなプロジェクトであり、TextView をすべて拡張するとどのような問題が発生するかわかりません。
編集 また、TextView を style="@style/flat_detail_name_view" に変更すると、正常に動作します。私がそうしたくない理由は、テーマを変更するだけでこれらのテキストビューの外観を変更できるようにするためです。style="?something_else" を使用すると、他のすべてのビューで機能するため、これを本当に理解できず、単純なものが欠けている可能性がありますか?