Java 在重新创建片段后恢复UI状态
在我用Fragment-B替换了Fragment-A之后,如何恢复Fragment-A的UI状态,然后再次调用Fragment-A?您可以在这两个片段之间使用SharedViewModel并将状态存储在那里Java 在重新创建片段后恢复UI状态,java,android,android-fragments,android-lifecycle,Java,Android,Android Fragments,Android Lifecycle,在我用Fragment-B替换了Fragment-A之后,如何恢复Fragment-A的UI状态,然后再次调用Fragment-A?您可以在这两个片段之间使用SharedViewModel并将状态存储在那里 您需要更具体地说明replace后面是否还跟有addToBackStack。@EpicPandaForce是的,replace后面跟有addToBackStack。例如,我想打开一个设置片段< /C>,如果我回到 HooFrace,我希望前面有相同的UI状态。只有当我们考虑从 VIEWMST
您需要更具体地说明
replace
后面是否还跟有addToBackStack
。@EpicPandaForce是的,replace
后面跟有addToBackStack
。例如,我想打开一个<代码>设置片段< /C>,如果我回到SharedViewModel
从它从AbstractSavedStateViewModelFactory
@MakinTosH获取的SavedStateHandle
存储/检索其状态。这是一个好主意,但如果替换片段,它将在创建时启动,并且ViewModel将被清除。还是我错了?SharedViewModel的作用域是活动的,所以当片段被销毁时它不会被清除viewModel=activity?.run{ViewModelProviders.of(this)[SharedViewModel::class.java]}?:抛出异常(“无效活动”)