答案 0 :(得分:11)
当方向改变时,片段的状态将被改变。您需要通过调用
来保存片段的状态setRetainInstance(true);
在onCreate()
方法中。
您还可以使用onRestoreInstanceState()
方法存储savedInstanceState
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
onCreate(savedInstanceState);
}
最好的解决方案就是添加
android:configChanges="orientation|screenSize|keyboardHideen"
用于将您的片段保存在清单文件中的活动。
答案 1 :(得分:1)
在方向更改期间,android会破坏您的活动。也许你设置了一些东西,在那次改变中它变得无效。 您可以在此处详细了解:https://developer.android.com/guide/topics/resources/runtime-changes.html
你说你希望能够改变方向。为了完整起见,您可以将方向修改为横向或纵向,请参阅: Android - disable landscape mode?