最小 API が 14 の xamarin.android を使用して Android アプリを作成しています。 を使用しXamarin.Android.Support.v7.Preference - version 23.4.0.1
て、アプリの設定ページを作成しています。
設定ページのスタイルを指定する必要があるため、styles.xml に次の行を追加しました。
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
しかし、これにより、設定ページが非常にホロ的で非物質的に見え、私のアプリのテーマには合いません。
そのため、代わりに使用できることがわかりました。これにより、マテリアルの外観が得られます(SOの回答@style/PreferenceThemeOverlay.v14.Material
に基づく)。これには、Xamarin.Android.Support.v14.Preference ライブラリを追加する必要があるため、API 14 以降をサポートしているので追加しました。
プロジェクトをビルドしようとしましたが、スタイルが見つからないようですPreferenceThemeOverlay.v14.Material
。完全なエラーは次のとおりです。
No resource found that matches the given name (at 'preferenceTheme' with value '@style/PreferenceThemeOverlay.v14.Material').
ここに私のナゲットの依存関係リストがあります:
<package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.4.0.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Design" version="23.4.0.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.v14.Preference" version="23.4.0.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.v4" version="23.4.0.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.v7.AppCompat" version="23.4.0.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.v7.GridLayout" version="23.4.0.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.v7.Preference" version="23.4.0.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.v7.RecyclerView" version="23.4.0.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Vector.Drawable" version="23.4.0.1" targetFramework="monoandroid70" />
どうすれば修正できますか?私は何かが足りないのですか?マテリアルの外観を実現するためのより良い/代替方法はありますか?
ここにあるライブラリの xamarin バインディングのソース コードを調べて、自分でプロジェクトをビルドしたところ、次の場所にこのファイルが見つかりましたAndroidSupportComponents-master\externals\preference-v14\res\values
。
<?xml version="1.0" encoding="utf-8"?>
<resources>
...
<style name="PreferenceThemeOverlay.v14.Material">
<item name="preferenceScreenStyle">@style/Preference.PreferenceScreen.Material</item>
<item name="preferenceFragmentCompatStyle">@style/PreferenceFragment.Material</item>
<item name="preferenceFragmentStyle">@style/PreferenceFragment.Material</item>
<item name="preferenceCategoryStyle">@style/Preference.Category.Material</item>
<item name="preferenceStyle">@style/Preference.Material</item>
<item name="preferenceInformationStyle">@style/Preference.Information.Material</item>
<item name="checkBoxPreferenceStyle">@style/Preference.CheckBoxPreference.Material</item>
<item name="switchPreferenceCompatStyle">@style/Preference.SwitchPreferenceCompat.Material</item>
<item name="switchPreferenceStyle">@style/Preference.SwitchPreference.Material</item>
<item name="dialogPreferenceStyle">@style/Preference.DialogPreference.Material</item>
<item name="editTextPreferenceStyle">@style/Preference.DialogPreference.EditTextPreference.Material</item>
<item name="preferenceFragmentListStyle">@style/PreferenceFragmentList.Material</item>
</style>
...
</resources>
スタイルがライブラリに含まれているようで、ライブラリに含まれている必要があります。ビルドの進行状況が間違っている可能性がありますか? または、ライブラリを適切に参照していませんか?