[英]How to keep my current fragment on screen rotation
我正在尝试在一个活动中使用3个片段,其中一个片段在onCreate()
方法中设置为默认片段,而其他片段则通过某些操作进行调用,因此当我旋转屏幕时, onCreate()
方法再次调用,而我当前片段丢失,默认片段再次开始,但是我必须在onCreate()
方法中使用默认片段。 如何使正在运行的片段保持在旋转屏幕上?
您可以在onCreate方法中使用setRetainInstance(true)
。
要在运行时配置更改期间将状态对象保留在片段中:
扩展Fragment类并声明对有状态对象的引用。
创建片段时调用setRetainInstance(boolean)。
将片段添加到您的活动中。
重新启动活动时,使用FragmentManager检索片段。
我正在使用BottomNavigationView,但遇到了相同的问题。 通过在加载默认片段之前检查saveInstanceState是否为null来解决此问题。
if(savedInstanceState==null) {
//This is the function you call onCreate to load your Fragments
loadFragments(new MyDefaultFragment());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.