C# 在Xamarin.Android中未找到与给定名称匹配的资源(位于';headerLayout';)
我正在使用Xamarin for Android创建Android应用程序。我想在我的应用程序NavigationDrawer中使用,所以我从Xamarin组件商店下载并安装了“Android设计库”。然后我编辑了我的布局:C# 在Xamarin.Android中未找到与给定名称匹配的资源(位于';headerLayout';),c#,android,xml,xamarin,C#,Android,Xml,Xamarin,我正在使用Xamarin for Android创建Android应用程序。我想在我的应用程序NavigationDrawer中使用,所以我从Xamarin组件商店下载并安装了“Android设计库”。然后我编辑了我的布局: <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawerLayout"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/articlesListView" />
<android.support.design.widget.NavigationView
android:id="@+id/navView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/navHeader"
app:menu="@menu/navMenu"/>
</android.support.v4.widget.DrawerLayout>
navHeader.axml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="192dp"
android:background="?attr/colorPrimaryDark"
android:padding="16dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:orientation="vertical"
android:gravity="bottom">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Username"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"/>
</LinearLayout>
和menu/navMenu.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_home"
android:title="Home" />
<item
android:id="@+id/nav_messages"
android:title="Messages" />
<item
android:id="@+id/nav_friends"
android:title="Friends" />
<item
android:id="@+id/nav_discussion"
android:title="Discussion" />
</group>
<item android:title="Sub items">
<menu>
<item
android:title="Sub item 1" />
<item
android:title="Sub item 2" />
</menu>
</item>
</menu>
不幸的是,在编译时,我收到了以下错误:
C:\Project\Project\File.axml:错误APT0000:未找到该资源
将给定名称(位于“headerLayout”处)与值匹配
“@layout/navHeader”)。(APT0000)(AppName)
C:\Projects\Project\File.axml(0,0):错误APT0000:未找到资源
与给定名称匹配的(在“menu”处,值为“@menu/navMenu”)。
(APT0000)(AppName)
有人知道我如何解决这个问题吗
提前感谢您遇到了同样的问题。我猜这是一只虫子。导航标题视图和菜单视图的C#代码添加(在活动的OnCreate()方法中)对我来说很好。这是通过NavigationView方法和实现的 编辑
第一次删除
app:headerLayout="@layout/navHeader"
及
从导航抽屉布局中选择并插入
navigationView = FindViewById<NavigationView>(Resource.Id.navView);
navigationView.InflateHeaderView(Resource.Layout.navHeader);
navigationView.InflateMenu(Resource.Menu.navMenu);
navigationView=findviewbyd(Resource.Id.navView);
navigationView.InflateHeaderView(Resource.Layout.navHeader);
navigationView.InflateMenu(Resource.Menu.navMenu);
有关活动的onCreate()方法中的某个地方 我也有同样的问题。
我只需在标题布局文件的名称中添加小写字母,就可以了
之前(失败时显示相同的错误消息):
之后:
app:headerLayout="@layout/drawerheader"
用小写字母命名布局文件和菜单
app:headerLayout="@layout/drawerheader"
app:menu="@menu/drawermenu"
您可以发布.axml文件的目录结构吗?所有版面都应该在Resources/layout/中,菜单应该在Resources/menu/中,所有版面都在Resources/layout文件夹中,navMenu.xml在Resources/menu文件夹中。我对此不确定,但我认为navMenu.xml实际上应该是navMenu.axml(我所有菜单都使用.axml)-你能重命名并看看这是否解决了问题吗?同样的问题,有人有答案吗?这也是我的问题。大写名称适用于其他资源,但我想并非所有资源都适用。对我不适用。好像是Xamarin的大虫子!
app:headerLayout="@layout/drawerheader"
app:headerLayout="@layout/drawerheader"
app:menu="@menu/drawermenu"