【发布时间】:2020-12-07 06:23:49
【问题描述】:
我正在开发一个包含五个片段的 android 应用程序,我想要的是打开 fragment 1 并且我将其返回到 Main fragment 和我从片段 5 按下后按一样,它也来到 主片段。
当我从 MainFragment 按下 Backpress 时,应用程序应该退出。
我已经通过这个链接Link
我还添加了 Dispatcher,但它不符合我的要求。
就像我总是这样打开每个片段
private fun ShowQRCodeFragment() {
val newFragment: Fragment = QrCodeScanningFragment()
val transaction1: FragmentTransaction = supportFragmentManager.beginTransaction()
transaction1.replace(R.id.frameLayout, newFragment)
transaction1.addToBackStack(null)
transaction1.commit()
}
更新交易
private fun FunctionNewSettings() {
val newFragment: Fragment = CustomSettingsFragment()
val transaction1: FragmentTransaction = supportFragmentManager.beginTransaction()
transaction1.replace(R.id.frameLayout, newFragment)
transaction1.addToBackStack("namedata")
fragmentManager.popBackStack()
transaction1.commit()
}
【问题讨论】:
-
首先 null 不应该在 addToBackStack 中。其次,如果您想维护 backstack,请在您的 Fragment 中注册 onBackPressedDispatcher ,否则您可以在父活动中管理它,但计算 backstack 条目。
-
如何在主要活动中按计数器完成此操作
-
以及如何附加调度员
-
您可以使用 getSupportFragmentmanager 获取 backstackentrycount,google 一下。你会得到你的解决方案。
标签: android android-studio android-layout kotlin android-fragments