我只需要在屏幕旋转时不做任何更改。我的应用程序在第一次加载时显示一个随机图像,旋转设备不应该选择另一个随机图像。我如何(简单地)让这种行为停止?
发布于 2011-05-06 23:11:28
通常有三种方法可以做到这一点:
savedInstanceState
恢复活动的情况。这是通过覆盖onSaveInstanceState
来完成的,检查onCreate
.android:screenOrientation="portrait"
(或"landscape"
)添加到清单中的<activity>
来将活动锁定在一个方向上。<activity>
标记中指定android:configChanges="orientation|screenSize"
来告诉系统您打算自己处理屏幕更改。这样,活动将不会被重新创建,而是会收到一个回调(您可以忽略它,因为它对您没有用处)。就我个人而言,我会选择(3)。当然,如果将应用程序锁定到其中一个方向上没有问题,您也可以使用(2)。
发布于 2012-07-29 03:32:11
Xion的回答很接近,但#3 (android:configChanes="orientation"
)不会工作,除非应用程序的API级别为12或更低。
在API级别13或更高版本中,屏幕大小会随着方向的改变而改变,因此这仍然会导致活动在方向改变时被销毁并启动。
只需添加"screenSize“属性,如下所示:
<activity
android:name=".YourActivityName"
android:configChanges="orientation|screenSize">
</activity>
现在,当您更改方向(以及屏幕大小更改)时,activity保持其状态,并调用onConfigurationChanged()
。当方向改变时,这将保留屏幕上的任何内容(例如:Webview中的网页)。
从这个网站上学到的:http://developer.android.com/guide/topics/manifest/activity-element.html
此外,这显然是一种糟糕的做法,因此请阅读下面有关处理运行时更改的链接:
http://developer.android.com/guide/topics/resources/runtime-changes.html
发布于 2013-10-26 01:59:59
你只需要去AndroidManifest.xml
,在你的活动标签里面,你必须输入这行代码,就像上面有人说的那样:
android:configChanges="orientation|screenSize"
所以,你会得到类似这样的东西:
<activity android:name="ActivityMenu"
android:configChanges="orientation|screenSize">
</activity>
希望它能起作用!
https://stackoverflow.com/questions/5913130
复制相似问题