【问题标题】:how to write onBackPressed() in fragment kotlin如何在片段 kotlin 中编写 onBackPressed()
【发布时间】:2022-01-08 01:33:53
【问题描述】:

我在仪表板活动中创建了 4 个片段

1、2、3、4 在后退按钮按下时,我必须从 4 到 1、3 到 1、2 到 1 返回

这样做的最佳做法是什么?

我的应用不得返回最近打开的片段,例如 4 到 3、3 到 4

【问题讨论】:

  • 向前移动时不断从后台弹出片段。例如。当你从 2 到 3 时,从 backstack 中移除 2,当从 3 到 4 时,从 backstack 中移除 3。
  • 你在使用导航控制器吗?这个问题与今天用户名非常相似的人提出的另一个问题非常相似。这是询问相同问题的备用帐户吗?

标签: kotlin android-activity fragment onbackpressed


【解决方案1】:

覆盖活动中的onBackPressed() 方法并编写此代码sn-p。我想解决你的问题

 @Override fun onBackPressed() {
    while (supportFragmentManager.getBackStackEntryCount() > 0) {
                if (supportFragmentManager.findFragmentById(R.id.container) is Fragment1) {
                    return
                }
                getSupportFragmentManager().popBackStackImmediate()
            }
    
    }

【讨论】:

    【解决方案2】:

    您也可以使用 Jetpack Navigation,它为您提供了一个 GUI,您可以在导航结构中查看所有目的地。

    https://developer.android.com/guide/navigation? gclid=Cj0KCQiA15yNBhDTARIsAGnwe0UOz85aXEUlPqKU7VnbeGQKAwGufnfxbxTZDNyj6670Oxu3PbkyjtoaAnk4EALw_wcB&gclsrc=aw.ds

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多