Я хочу создать приложение с Material Design с помощью Xamarin и Visual Studio. Я хочу достичь этого, используя библиотеку v7 AppCompat, поэтому мое приложение хорошо работает на старых устройствах.Xamarin - Ошибка получения родительского элемента для элемента: Ресурс не найден, который соответствует указанному имени «Theme.AppCompat.Light.DarkActionBar»
Я после этого учебника:
https://blog.xamarin.com/android-tips-hello-material-design-v7-appcompat/
и сделал точно так же,. Когда я иду в файл Main.axml
(в папке Resources/layout
) есть выпадающее меню, где вы можете выбрать тему (рисунок ниже). Однако, когда я открываю раскрывающееся меню, моя тема не появляется. Поэтому я подумал, что было бы неплохо очистить и перестроить мой проект. Но когда я убирал проект, я получил эту ошибку:
Error retrieving parent for item: No resource found that matches the given
name 'Theme.AppCompat.Light.DarkActionBar'.
No resource found that matches the given name: attr 'colorAccent'.
No resource found that matches the given name: attr 'colorPrimary'.
No resource found that matches the given name: attr 'colorPrimaryDark'.
No resource found that matches the given name: attr 'windowActionBar'.
No resource found that matches the given name: attr 'windowNoTitle'.
Как я могу это исправить и сделать мою тема появляется в выпадающем меню?
EDIT:
Вот код:
Main.axml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/MyButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/Hello" />
</LinearLayout>
values/styles.xml
<resources>
<style name="MyTheme" parent="MyTheme.Base">
</style>
<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">#2196F3</item>
<item name="colorPrimaryDark">#1976D2</item>
<item name="colorAccent">#FF4081</item>
</style>
</resources>
values-v21
<resources>
<style name="MyTheme" parent="MyTheme.Base">
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>
</resources>
MainActivity.cs
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
namespace MaterialDesign
{
[Activity(Label = "MaterialDesign", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
int count = 1;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
Button button = FindViewById<Button>(Resource.Id.MyButton);
button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); };
}
}
}
Примечание:
Кроме того, когда я использую android.support.v7.widget.Toolbar
элемент, я получил следующее сообщение об ошибке: android.support.v7.widget.Toolbar element is not declared
.
EDIT (2):
Я пытался его загрузку с диспетчером компонентов, с помощью команды NuGet (Package Manager Console) и вручную загрузить DLL файлы и ссылки на них, но он по-прежнему не работает. Я также удалил папку \AppData\Local\Xamarin\Android.Support.v7.AppCompat\23.0.1.3
и удалил кеш, но без succes.
И в Main.axml
файла на вкладке дизайнера, появляется предупреждение:
This project contains resources that were not compiled successfully,
rendering might be affected
я узнал, что проблема с Visual Studio Designer, как она работает должным образом на моем телефоне. Поэтому я задал новый вопрос: Xamarin.Android, Visual Studio - Designer doesn't work with v7 AppCompat library
Здесь вы можете скачать мой проект:
https://drive.google.com/file/d/0BxiDy9-wQHvzNFRhaTMzelg1WlU/view?usp=sharing
(простите за плохой английский, не стесняйтесь, поправьте меня)
Для лучшего понимания проблемы вставьте код. –
Где вы применяете тему? В вашем 'AndroidManifest.xml'? Попробуйте уничтожить папки «bin/obj», «Очистить проект» и «Восстановить». Также убедитесь, что ваш пакет V7 AppCompat' NuGet указан соответствующим образом. –
@JonDouglas Я применяю тему в 'AndroidManifest.xml'. Я дернул папки 'bin' и' obj'. Я очистил и восстановил свой объект. Я получил те же ошибки, что и раньше: «Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени« Theme.AppCompat.Light.DarkActionBar'.' (подробнее в начале моего вопроса). Когда я ударил rebuild, я получил эту ошибку: '1> java.lang.UnsupportedClassVersionError: com/android/dx/command/Main: Unsupported major.minor version 52.0' (подробности в разделе редактирования (2) моего вопроса) , К сожалению, это не сработало :( – qwertytrewq