【问题标题】:How to save state of previous fragment on back pressed of next fragment如何在下一个片段的后按时保存上一个片段的状态
【发布时间】:2021-09-03 09:56:11
【问题描述】:

我的FragmentManager 代码看起来像这样,我应该怎么做才能实现有问题的行为?

               supportFragmentManager.beginTransaction().hide(HomeFragment.newInstance())
                    .apply {
                        replace(
                            R.id.fragment_container_view,
                            HomeFragment.newInstance()
                        )

                        setCustomAnimations(
                            android.R.anim.slide_out_right,
                            android.R.anim.fade_out,
                            android.R.anim.slide_in_left,
                            android.R.anim.fade_out
                        )

                        addToBackStack(FragmentType.HOME_FRAGMENT)
                        commit()
                    }

【问题讨论】:

标签: android kotlin fragment


【解决方案1】:

add() 方法不断在 FragmentContainer 中的前一个片段之上添加片段。

而 replace() 方法会从 Containers 中清除所有之前的 Fragment,然后将其添加到 FragmentContainer 中。

supportFragmentManager.beginTransaction().hide(HomeFragment.newInstance())
                    .apply {
                        add(
                            R.id.fragment_container_view,
                            HomeFragment.newInstance()
                        )

                        setCustomAnimations(
                            android.R.anim.slide_out_right,
                            android.R.anim.fade_out,
                            android.R.anim.slide_in_left,
                            android.R.anim.fade_out
                        )

                        
                       addToBackStack(FragmentType.HOME_FRAGMENT)
                       commit()
                }

【讨论】:

  • 你的插图不错,但我绝对怀疑这是否是操作人员想要的,
  • 让我用 add() 检查一下。
  • 请接受我的正确答案。
猜你喜欢
  • 1970-01-01
  • 2011-10-10
  • 2012-12-25
  • 1970-01-01
  • 2020-07-26
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多