繁体   English   中英

如何保持当前片段在屏幕上旋转

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM