(使用Android Studio 2021.1.1)
action_settings菜单和配置菜单项。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)