如何在片段 kotlin 中编写 onBackPressed()
Posted
技术标签:
【中文标题】如何在片段 kotlin 中编写 onBackPressed()【英文标题】:how to write onBackPressed() in fragment kotlin 【发布时间】: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。 你在使用导航控制器吗?这个问题与今天用户名非常相似的人提出的另一个问题非常相似。这是询问相同问题的备用帐户吗? 【参考方案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
【讨论】:
以上是关于如何在片段 kotlin 中编写 onBackPressed()的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Fragments 中实现 onBackPressed()?