Android 使用工具栏中的按钮在片段之间导航

Android 使用工具栏中的按钮在片段之间导航,android,kotlin,android-fragments,Android,Kotlin,Android Fragments,在我的应用程序中,我希望创建新记录的过程分为几个步骤,在这些步骤中,用户会被询问不同的信息。因此,我使用NavHostFragment创建了一个活动,并希望使用此活动工具栏中的next按钮使用导航图在片段之间切换 是否可以将按钮配置为基于导航图在片段之间导航?这是一个好方法吗?我应该为每个步骤使用新的活动吗?我是android开发新手,所以我不确定什么是最好的方法。你可以用导航图来处理它 处理片段中的工具栏单击事件: 在处理每个片段的“下一步”按钮时,单击事件实现导航代码 findNavCo

在我的应用程序中,我希望创建新记录的过程分为几个步骤,在这些步骤中,用户会被询问不同的信息。因此,我使用
NavHostFragment
创建了一个活动,并希望使用此活动工具栏中的
next
按钮使用导航图在片段之间切换


是否可以将按钮配置为基于导航图在片段之间导航?这是一个好方法吗?我应该为每个步骤使用新的活动吗?我是android开发新手,所以我不确定什么是最好的方法。

你可以用导航图来处理它

  • 处理片段中的工具栏单击事件:

    在处理每个片段的“下一步”按钮时,单击事件实现导航代码

    findNavController().navigate(Your action)
    
  • 处理活动的OnItemOptions Selected侦听器中的所有导航过程

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
    
    val navHostFragment = supportFragmentManager.primaryNavigationFragment
    val fragment = navHostFragment?.childFragmentManager?.fragments?.get(0)
    
    when(item.itemId)
    {
        android.R.id.home->super.onBackPressed()
        R.id.next-> {
             if(fragment is Fragment1)
             {
                fragment.findNavController().navigate(Fragment1toFragmen2 action)}
    
             if(fragment is Fragment2)
             {
                fragment.findNavController().navigate(Fragment2toFragmen3 action)}
        }
    
        return true
    }
    

  • 谢谢,我尝试使用
    onOptionsItemSelected
    方法处理活动中的导航,它完全符合我的要求。但是,当我从fragment2移回fragment1时,我的操作栏中的“后退”按钮消失,并且仅在fragment1中不再可见。你知道为什么吗?我在活动中使用
    setDisplayHomeAsUpEnabled(true)
    设置了它。这是因为导航组件存在回退问题。您需要重写onBackPressed方法来实现您想要的。