相关疑难解决方法(0)

为什么导航在版本 2.4.1 的导航抽屉活动模板中不起作用?

(使用Android Studio 2021.1.1)

使用导航抽屉活动创建一个新项目:

  1. 使用导航抽屉活动模板创建了一个默认的 Android 应用程序。
  2. 向项目添加了一个设置片段来测试action_settings菜单和配置菜单项。
  3. 重写onOptionsItemSelected()MainActivity.java处理设置菜单,如下所示:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Bundle bundle = new Bundle();
        switch (item.getItemId()) {
            case R.id.action_settings:
                Navigation
                    .findNavController(this, R.id.nav_host_fragment_content_main)
                    .navigate(R.id.nav_settings);
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

测试:

运行项目,抽屉菜单工作正常并按预期打开片段。问题是,当您单击溢出菜单打开设置片段时,它可以工作,但打开主页片段时,抽屉菜单不再工作。

在此输入图像描述
在此输入图像描述

观察:

经过一些测试,我发现这是因为依赖版本的原因,将其从2.4.1降级到2.3.5可以解决问题。

我的代码有问题还是因为 API 更改?如何在不降级的情况下处理这个问题?

额外信息:

MainActivity在的方法中onCreate()我添加了以下内容:

     mAppBarConfiguration = new AppBarConfiguration.Builder(
                R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow, R.id.nav_settings)
                .setOpenableLayout(drawer)
                .build();
Run Code Online (Sandbox Code Playgroud)

app模块的build.gradle

plugins {
    id 'com.android.application'
}

android {
    compileSdk 31

    defaultConfig { …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-studio navigation-drawer

10
推荐指数
1
解决办法
5336
查看次数