Android Studio 4。新项目导航抽屉活动。添加名称等,然后构建。发送到Nexus 6P API 28仿真,Pixel 3a API29仿真。也适用于三星SM-J530Y Android 9和诺基亚7Plus Android 10。
[所有实例都允许打开抽屉,所有实例都不允许选择抽屉,但是尝试选择一个条目会关闭抽屉。
我在navController中添加了onDestinationChangedListener,这只会踢出初始的家庭选择事件。
尝试添加navView.setNavigationItemSelectedListener,并且永远不会触发
仅使用较新的NavController进行搜索只会拖出旧问题,而不会拖延。尝试更新到最新的beta01 kotlin依赖项
def navVersion = "2.3.0-beta01"
implementation "androidx.navigation:navigation-fragment-ktx:$navVersion"
implementation "androidx.navigation:navigation-ui-ktx:$navVersion"
来自模板“ 2.2.2”
也添加了应用插件:'androidx.navigation.safeargs.kotlin'无效。
会拔一些头发,但我没有多少了。
我想在我的寻呼机应用程序中远离选项卡添加抽屉式导航,因此有兴趣使它起作用。
正如Mike M在评论中突出显示的那样,activity_main.xml中的NavigationView的顺序不正确。
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.drawerlayout.widget.DrawerLayout>
错了。
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</androidx.drawerlayout.widget.DrawerLayout>
Works。如此简单,却非常令人沮丧。