Android导航抽屉模板无法工作,除非通过Emulator AS4.0上的Tab和光标键进行导航

问题描述 投票:0回答:1

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'无效。

会拔一些头发,但我没有多少了。

我想在我的寻呼机应用程序中远离选项卡添加抽屉式导航,因此有兴趣使它起作用。

android navigation navigation-drawer androidx navigationcontroller
1个回答
0
投票

正如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。如此简单,却非常令人沮丧。

© www.soinside.com 2019 - 2024. All rights reserved.