Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在重新创建片段后恢复UI状态_Java_Android_Android Fragments_Android Lifecycle - Fatal编程技术网

Java 在重新创建片段后恢复UI状态

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

在我用Fragment-B替换了Fragment-A之后,如何恢复Fragment-A的UI状态,然后再次调用Fragment-A?

您可以在这两个片段之间使用SharedViewModel并将状态存储在那里


您需要更具体地说明
replace
后面是否还跟有
addToBackStack
。@EpicPandaForce是的,
replace
后面跟有
addToBackStack
。例如,我想打开一个<代码>设置片段< /C>,如果我回到 HooFrace,我希望前面有相同的UI状态。只有当我们考虑从<代码> VIEWMSTATE SaveDead < /代码>中添加<代码> SavedStateHandle <代码>时,这个答案才是完整的,
SharedViewModel
从它从
AbstractSavedStateViewModelFactory
@MakinTosH获取的
SavedStateHandle
存储/检索其状态。这是一个好主意,但如果替换片段,它将在创建时启动,并且ViewModel将被清除。还是我错了?SharedViewModel的作用域是活动的,所以当片段被销毁时它不会被清除
viewModel=activity?.run{ViewModelProviders.of(this)[SharedViewModel::class.java]}?:抛出异常(“无效活动”)