如何在下一个片段的后退时保存前一个片段的状态
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()
}
我的 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()
}