如何在设备倾斜时阻止活动在新方向上重新绘制?我希望onCreate
函数在活动显示后不再执行第二次。
答案 0 :(得分:11)
如果您想要应对平板电脑设备,那么您应该使用nosensor
值,例如
<activity android:name=".MyActivity"
android:screenOrientation="nosensor" ></activity>
这将使用设备的自然方向,这将在某些设备(例如Xoom平板电脑)上呈现风景。
此处的API文档位于:
确定方向而不参考物理方面 方向传感器。传感器被忽略,因此显示器不会 根据用户移动设备的方式进行旋转。除此之外 区别,系统使用相同的策略选择方向 至于“未指明”的设置。
http://developer.android.com/guide/topics/manifest/activity-element.html#screen
答案 1 :(得分:8)
您可以修复屏幕方向。将其添加到清单文件中的活动标记:
android:screenOrientation = "portrait"
答案 2 :(得分:5)
在AndroidManifest.xml的活动代码中添加此代码
android:configChanges="keyboardHidden|orientation"
通过添加此代码,当您将手机模式更改为纵向或横向时,将不会调用onCreate()
。
答案 3 :(得分:1)
我必须在AndroidManifest文件中添加两件事:
<activity android:name="my_activity"
...
android:configChanges="orientation"
android:screenOrientation="portrait">
...
</activity>
我还必须为AdMob做类似的事情:
<activity android:name="com.google.ads.AdActivity"
android:configChanges="orientation"/>
答案 4 :(得分:1)
根据您的需要将此添加到您的onCreate()并完成。
requestWindowFeature(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
或
requestWindowFeature(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
如果您不想更改代码,请将其添加到清单中
<activity android:name=".activityname" android:label="Something"
android:screenOrientation="portrait">
</activity>