0

最小 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>

スタイルがライブラリに含まれているようで、ライブラリに含まれている必要があります。ビルドの進行状況が間違っている可能性がありますか? または、ライブラリを適切に参照していませんか?

4

1 に答える 1

0

どうやら、私はすべてを正しく行ったようで、VS のキャッシュの問題でした。パッケージを再ダウンロードして PC を再起動し、プロジェクトは正常にコンパイルされました。

于 2016-12-11T09:30:50.373 に答える