DrawerLayout 和 NavigationView - 未找到属性“菜单”

Posted

技术标签:

【中文标题】DrawerLayout 和 NavigationView - 未找到属性“菜单”【英文标题】:DrawerLayout and NavigationView - attribute 'menu' not found 【发布时间】:2018-06-11 00:17:01 【问题描述】:

我正在尝试将导航菜单添加到 android Studio 中的现有项目。然而,按照the official website 上的说明,我在视图的其余部分周围添加了一个<android.support.v4.widget.DrawerLayout ... 标记,并且在具有主要活动布局的主要ConstraintLayout 下,我将示例Navigation Draw 放在其下方:

<android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_
        android:layout_
        android:layout_gravity="start"
        app:menu="@menu/my_navigation_items" />

最后一行在构建时会导致一些问题:

Error:error: attribute 'com. ... :menu' not found.

我不知道为什么会这样。 app:menuapp 部分在 DrawerLayout 标签中定义为:xmlns:app="http://schemas.android.com/apk/res-auto"

这似乎也有在我的 MainActivity.java 文件中给我错误Cannot resolve symbol R 的效果。

无论如何,非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

您的 build.gradle 文件中有 compile 'com.android.support:design:27.0.2' 吗? 如果没有,请尝试添加它。

【讨论】:

谢谢,这可以消除错误。不过,我确实得到了另一个,我通过创建 res/menu 目录并将my_navigation_files.xml 文件放入其中解决了这个问题。 如果您使用的是 gradle 3.0,请使用 implement 而不是 compile。更多关于这里的主题:***.com/a/44493379/8700123 如果您使用的是 AndroidX:implementation 'com.google.android.material:material:1.0.0'

以上是关于DrawerLayout 和 NavigationView - 未找到属性“菜单”的主要内容,如果未能解决你的问题,请参考以下文章

Android:导入DrawerLayout无法解决

一行代码设置 DrawerLayout 全屏效果

Android Navigation 详解

Android Navigation 详解

如何在导航控件片段中关闭导航 DrawerLayout onBackPressed

Android官方终于支持 Navigation Drawer(导航抽屉)模式