私のAndroidアプリケーションには、スタイルファイルに次のような宣言があるメインプロジェクトモジュールがあります。このテーマは "application"タグのManifestファイルで使用されるため、 "application"要素内のすべてのコンポーネントに同じテーマが適用されます。Androidスタイルのプロパティと属性を解決しますか?
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:colorPrimary" tools:ignore="NewApi">
@color/light_black
</item>
<item name="colorPrimary">@color/light_black</item>
<item name="android:colorAccent" tools:ignore="NewApi">@color/sapphire</item>
<item name="colorAccent">@color/sapphire</item>
<item name="android:colorBackground">@color/primary_background</item>
<item name="android:textColorPrimary">@color/title_color</item>
<item name="android:colorButtonNormal" tools:ignore="NewApi">@color/sapphire</item>
<item name="colorButtonNormal">@color/sapphire</item>
<item name="android:colorForeground" tools:ignore="NewApi">
@color/title_color
</item>
<item name="android:titleTextStyle">@style/toolbar_title</item>
<item name="android:navigationIcon" tools:ignore="NewApi">
?android:attr/homeAsUpIndicator</item>
<item name="navigationIcon">?android:attr/homeAsUpIndicator</item>
<item name="android:colorControlNormal" tools:ignore="NewApi">@android:color/white</item>
<item name="colorControlNormal">@android:color/white</item>
</style>
は、私はまた、ライブラリモジュールを持って、私は内、最も一般的に使用されるビュー、ウィジェットと私のアプリケーションプロジェクト内の他のアプリケーションで再利用することができますベースのコンポーネント、または他の人を置くことになる主なプロジェクトモジュール、隣組織。 Gradle Dependency宣言に関しては、プロジェクトモジュールはライブラリモジュールに依存しますが、逆もありません。
メインプロジェクトモジュールの適切なコンテキスト(アクティビティインスタンス)のテーマに応じて、実行時にライブラリモジュールコンポーネントのコードベース内のデフォルトのアンドロイド属性「colorAccent」と「colorControlNormal」を解決するにはどうすればよいですか?
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<item android:color="?android:attr/colorControlNormal"
android:state_activated="false"
tools:ignore="NewApi"/>
<item android:color="?android:attr/colorAccent"
android:state_activated="true"
tools:ignore="NewApi"/>
</selector>