如何在下一个片段的后退时保存前一个片段的状态

How to save state of previous fragment on back pressed of next fragment

我的 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()
                    }

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

虽然 replace() 方法会从容器中清除所有以前的片段,然后将其添加到 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()
                }