Не удается найти стиль из библиотеки поддержки настроек

Я создаю приложение для Android с использованием xamarin.android с минимальным API 14. Я использую Xamarin.Android.Support.v7.Preference - version 23.4.0.1 для создания страницы настроек для своего приложения.

Мне нужно указать стиль для страницы настроек, поэтому я добавил эту строку в свой файл styles.xml:

<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>

Но из-за этого страница настроек выглядит очень голой и нематериальной, что не соответствует теме моего приложения.
Итак, я обнаружил, что вместо этого вы можете использовать @style/PreferenceThemeOverlay.v14.Material, что придаст вам материальный вид (на основе SO ответ). Для этого мне нужно добавить библиотеку 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').

Вот мой список зависимостей nuget:

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

Таким образом, кажется, что стиль содержится в библиотеке и должен содержаться в библиотеке, может быть, процесс сборки неверен? Или я неправильно ссылаюсь на библиотеку?




Ответы (1)


Судя по всему, я все сделал правильно, и это была проблема с кэшированием с VS, я повторно загрузил пакет и перезагрузил компьютер, и проект успешно скомпилировался.

person David Barishev    schedule 11.12.2016