【问题标题】:Execute code when item pressed in NavDrawer [duplicate]在 NavDrawer 中按下项目时执行代码 [重复]
【发布时间】: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


    【解决方案1】:

    我设法通过在 Navigation Drawer 的 Log Out 项中添加一个侦听器来解决这个问题。为此,我获得了一个导航抽屉菜单的实例,然后我找到了我想要收听的项目并添加了监听器。

    在这种情况下,只是为了测试,我完成了活动。

    val menu: Menu = navView.getMenu()
            val menuItem = menu.findItem(R.id.nav_logout)
            menuItem.setOnMenuItemClickListener {
                this.finish()
                true
            }
    

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 1970-01-01
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 2018-11-11
      • 1970-01-01
      相关资源
      最近更新 更多