Android Kotlin导航UI抽屉问题

时间:2019-08-13 17:36:56

标签: android kotlin

我正在使用新的导航UI来开发新的应用程序。我用菜单项创建了一个抽屉。我可以通过使用导航UI单击抽屉中的其他片段来进行导航。
当用户使用alertDiagLogout方法从抽屉中单击注销菜单项(id logoutDrawer)时,我想显示一个AlertDialog。
我试图在我的主要活动中实现onNavigationItemSelected“ classic”方法,但它破坏了导航UI中的所有Nav图。
你有解决的办法吗?
谢谢

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        profileViewModel = ViewModelProviders.of(this).get(ProfileViewModel::class.java)

        this.setupNavigation()
        this.configurationToolBar()
    }

private fun setupNavigation(){
        setSupportActionBar(toolbar)
        navController = findNavController(R.id.mainNavFragment)
        NavigationUI.setupActionBarWithNavController(this,navController,drawer_layout)
        nav_view.setupWithNavController(navController)
    }

    override fun onSupportNavigateUp(): Boolean {
        return NavigationUI.navigateUp(navController,drawer_layout)
    }

    override fun onBackPressed() {
        if (drawer_layout.isDrawerOpen(GravityCompat.START)) {
            drawer_layout.closeDrawer(GravityCompat.START)
        } else {
            super.onBackPressed()
        }
    }

    private fun alertDiagLogout(){
        val builder = AlertDialog.Builder(this)
        val inflater =layoutInflater
        val dialogView = inflater.inflate(R.layout.alert_dialog,null)
        builder.setView(dialogView)
        dialog = builder.create()
        dialog.show()
        dialogView.alert_diag_no.setOnClickListener { dialog.dismiss() }
        dialogView.alert_diag_yes.setOnClickListener { logoutUser() }
    }

0 个答案:

没有答案