【问题标题】:How to add action to a Navigation Drawer item? [duplicate]如何向导航抽屉项目添加操作? [复制]
【发布时间】:2021-01-19 23:38:44
【问题描述】:

我将导航抽屉与导航图一起使用。一切正常,但我想在抽屉中添加一个共享按钮,该按钮只应执行操作并显示共享表,而不是打开新片段。

问题是当我覆盖 NavigationViewsetNavigationItemSelectedListener 方法来执行此操作时,导航图不再起作用。

这是我在MainActivity 中的onCreate 方法:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val toolbar: Toolbar = findViewById(R.id.toolbar)
    setSupportActionBar(toolbar)

    val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
    val navView: NavigationView = findViewById(R.id.nav_view)
    val navController = findNavController(R.id.main_fragment)
    // Passing each menu ID as a set of Ids because each
    // menu should be considered as top level destinations.
    appBarConfiguration = AppBarConfiguration(setOf(
            R.id.nav_home, R.id.nav_evidenceIntroduction, R.id.nav_settings, R.id.nav_video, R.id.fragment_credits, R.id.nav_umlaute, R.id.fragment_favorite), drawerLayout)
    setupActionBarWithNavController(navController, appBarConfiguration)
    navView.setupWithNavController(navController)
    navView.setNavigationItemSelectedListener {
        when (it.itemId) {
            R.id.nav_share -> {
                drawerLayout.closeDrawer(GravityCompat.START)
                val sendIntent = Intent()
                sendIntent.action = Intent.ACTION_SEND
                sendIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.teilen_detail, getString(R.string.app_name), "".addWatermark()))
                sendIntent.type = "text/plain"
                startActivity(sendIntent)

                HapticFeedback.vibrate(it.actionView)
                true
            }
            else -> true
        }
    }
}

【问题讨论】:

    标签: java android kotlin navigation navigation-drawer


    【解决方案1】:

    使用setOnMenuItemClickListener 代替setNavigationItemSelectedListener

    navView.menu.findItem(R.id.nav_share).setOnMenuItemClickListener {}
    

    【讨论】:

      猜你喜欢
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多