【发布时间】:2020-05-05 18:47:19
【问题描述】:
我正在使用带有 NavController 的 Navigation Drawer,这意味着我在 nav_graph 文件中定义了到其他片段的导航。导航抽屉有 3 项(待办事项、配置文件和注销),前两项(待办事项和配置文件)更改当前片段(这工作正常),但第三项(注销)应通过调用执行一些代码一个函数,但是使用 navController 我只能更改片段,如果我实现 OnNavigationOnItemSelectedListner,它会禁用 navController 功能(除非我在侦听器中编写代码,否则片段不会更改)。有没有办法在不禁用 NavController 的情况下实现注销项的代码?
这是我正在使用的代码的一部分
活动
appBarConfiguration = AppBarConfiguration(setOf(R.id.nav_todo, R.id.nav_profile), drawerLayout)
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
nav_graph.xml
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/nav_todo">
<fragment
android:id="@+id/nav_todo"
android:name="com.lepe.helloandroidkotlin.ToDoFragment"
android:label="To - Do"
tools:layout="@layout/fragment_to_do"/>
<fragment
android:id="@+id/nav_profile"
android:name="com.lepe.helloandroidkotlin.ProfileFragment"
android:label="Profile"
tools:layout="@layout/fragment_profile"/>
</navigation>
谢谢
【问题讨论】:
标签: android android-fragments uinavigationcontroller navigation-drawer android-jetpack