使用Navigation Component实现侧边抽屉菜单项点击跳转指定Fragment
解决方法
按照以下步骤操作即可实现需求:
- 首先配置导航图
打开res/navigation/mobile_navigation.xml文件,确认Order Fragment已经被添加为导航目的地,给它设置唯一id,示例配置如下:
<fragment android:id="@+id/orderFragment" android:name="你的包名.OrderFragment" android:label="订单页面" />
- 然后匹配抽屉菜单项的id
打开res/menu/drawer_menu.xml,找到Orders选项对应的菜单项,将它的android:id设置为和导航图中Order Fragment完全相同的id:
<item android:id="@+id/orderFragment" android:title="Orders" />
你已经在代码中调用了NavigationUI.setupWithNavController(nav_view, navController),只要两个id完全匹配,Navigation组件会自动处理点击跳转逻辑,无需额外编写跳转代码。
如果需要点击跳转后自动收起导航抽屉,可以在MainActivity的onCreate方法中追加以下代码:
nav_view.setNavigationItemSelectedListener { menuItem -> val navResult = NavigationUI.onNavDestinationSelected(menuItem, navController) if (navResult) { drawer_Layout.closeDrawer(GravityCompat.START) } navResult }
注意需要导入依赖包:import androidx.core.view.GravityCompat
内容的提问来源于stack exchange,提问作者SasidharanIOS
相关产品推荐
相关产品推荐

