如何解决使用片段时,我是否在activity_main.xml中使用DrawerLayout?
我正在使用Android Jetpack导航和片段构建一个应用程序。我想在我的应用程序中包含一个导航抽屉,但是我不确定我将DrawerLayout标记放置在什么位置。我希望可以从大多数(但不是全部)片段中访问导航抽屉。我是否将此标签放在activity_main.xml或要在其中包含导航抽屉的每个布局文件中?谢谢!
解决方法
在您的activity_main.xml
中,将主布局换成DrawerLayout
。由于您希望可以从任何地方访问它,因此无需在navController上添加addOnDestinationChangedListener
。但是,如果您不想在特定片段上添加,则必须添加它并放入条件以检查NavDestination并按如下所示将其锁定
navController.addOnDestinationChangedListener { nc: NavController,nd: NavDestination,_: Bundle? ->
if (nd.id == nc.graph.startDestination) {
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
} else {
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。