【发布时间】:2020-08-22 22:15:18
【问题描述】:
我正在使用导航抽屉,汉堡菜单显示在所有右侧屏幕中,但在其他片段上,当我单击后退箭头时,当我想返回堆栈时导航抽屉打开上一屏。
如何更改行为,以便在显示箭头时,与汉堡菜单相反,我可以捕获用户点击箭头?
我正在使用带有片段的导航抽屉。在主要活动中,我使用 AppBarConfiguration 设置顶级目的地:
AppBarConfiguration config = new AppBarConfiguration.Builder(topLevelDestinations)
.setDrawerLayout(drawerLayout)
.build();
NavigationUI.setupActionBarWithNavController(this, navController, config);
NavigationUI.setupWithNavController(navView, navController);
navView.setNavigationItemSelectedListener(this);
我正在捕获来自顶级目的地的所有选择并进行适当的导航:
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
item.setChecked(true);
drawerLayout.closeDrawers();
int id = item.getItemId();
switch (id) {
...
}
drawerLayout.closeDrawer(GravityCompat.START);
return true;
}
【问题讨论】:
-
部分。我可以使用 getFragmentManager().popBackStack(),但需要捕获事件。
-
获取事件是什么意思?这不是你问题的一部分,对吧?
-
从哪里调用 getFragmentManager().popBackStack()?片段? onNavigationItemSelected 在 Activity 中,很棒。非 TopLevelDestinations 的结构是否不同?
标签: android android-navigation