我有两个屏幕和两个用于一项活动的 xml 文件。在我的onCreate
方法中,我调用第一个并处理一些用户输入。之后,我正在改变我的布局
setContentView(R.layout.activity_quiz2);
一切都很好并且按预期工作但是当我运行应用程序并在切换布局后转动我的设备时。它只会切换回第一个布局并保持该布局(每个按钮都可以正常工作)。
当我转动我的设备时,如何防止我的屏幕改变我的布局?
我有两个屏幕和两个用于一项活动的 xml 文件。在我的onCreate
方法中,我调用第一个并处理一些用户输入。之后,我正在改变我的布局
setContentView(R.layout.activity_quiz2);
一切都很好并且按预期工作但是当我运行应用程序并在切换布局后转动我的设备时。它只会切换回第一个布局并保持该布局(每个按钮都可以正常工作)。
当我转动我的设备时,如何防止我的屏幕改变我的布局?
它正在切换回第一个布局,因为当您旋转屏幕时,Activity
会重新创建整个布局。你有几个选择来处理这个问题:
添加android:configChanges="orientation"
到文件<activity
中的元素AndroidManifest.xml
。这样你就告诉系统你想自己处理轮换(如果需要,你可以在onConfigurationChanged()
方法中执行一些操作)。
用于Fragments
显示您拥有的两个“状态”(我假设它们是quiz1
and quiz2
)。这样你就不需要setContentView()
在你的活动中做多个。
第二种选择是要选择的,因为这基本上就是Fragments
全部内容。更不用说您可以在它们之间进行非常好的过渡(淡入淡出动画等),并且您的 UX 将比交换setContentView()
.