私は Android 開発の初心者であり、コーディングは完全に理にかなっていますが、Android テーマは私見ではありません
この単純なタスクの実装に問題があります。
私は(たとえば)「何とか」という名前の色を持っています
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="blah">#F0F0F0</color>
<resources>
これは、XML レイアウトまたはコードのあらゆる場所で、さまざまなビュー コンポーネントによって "@color/blah" として使用されます。
この色の値をテーマごとに変更したいだけです
したがって、MyTheme1 を使用する場合、何とか #F0F0F0 にする必要があり、MyTheme2 を使用する場合、何とか #00FF00 にする必要があります。
私のアプリは特別なスタイルなどを必要とせず、テーマごとの色だけであるため、テーマについて読んでいますが、この単純なタスクを実装する方法をまだ見つけることができません。
事前にサンクス
アップデート:
Mohamed_AbdAllah によって提供されたリンクの後、attrs.xml と styles.xml で定義することにより、いくつかのカスタム カラーを作成することに成功しました。
attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="color_item_title" format="color|reference" />
</resources>
スタイル.xml
<style name="AppBaseThemeDark" parent="android:Theme.Black">
<item name="color_item_title">@color/White</item>
</style>
しかし今、もっと深刻な問題が発生しています
すべてのビューで色 ?color_item_title をうまく使用できるので、ボタンとテキストは実際にその色になります。
ただし、その ?color_item_title をカスタム ドローアブルまたはリストビュー レイアウト (ランタイム中にインフレートされるビュー) で使用すると、クラッシュが発生します。
したがって、リストビュー listitem レイアウト内で ?color_item_title を使用すると、実行時にその行にインフレータ メッセージが表示されてクラッシュします :(
また、ドローアブルでもクラッシュします:(インフレエラーが再び発生します)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@color/Black" />
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
<stroke android:width="1dp" android:color="?color_item_title" />
</shape>