设备倾斜时如何防止方向改变?

时间:2011-08-24 11:58:05

标签: android

如何在设备倾斜时阻止活动在新方向上重新绘制?我希望onCreate函数在活动显示后不再执行第二次。

5 个答案:

答案 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>