Android锁定方向为起始方向

时间:2013-09-19 08:45:40

标签: android android-layout screen-orientation android-orientation

我已经搜索了很长时间但没有任何作用。我有一个活动,我希望它的方向在活动的整个生命周期中被锁定。这个方向必须是开始方向。我的意思是,当活动开始于任何方向时,它必须忽略方向变化。我怎么能这样做? 谢谢回复..

4 个答案:

答案 0 :(得分:3)

通过代码,您可以请求为您的活动“onCreate”调用方向:

   setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

您可以像这样阅读当前的方向:

   getResources().getConfiguration().orientation;

因此,您可以阅读当前的方向并要求它保持不变:

   int orientation = getResources().getConfiguration().orientation;
   setRequestedOrientation(orientation);

您还可以通过在清单中添加configChanges:orientation来禁用方向更改中的活动生命周期事件:

   <activity android:name="MyActivity"
      android:configChanges="orientation">
       ...
   </activity>

答案 1 :(得分:0)

另一种选择是: 像How to use onConfigurationChanged() and newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE in android 2.3.3

一样覆盖onConfigurationChanged()

但请勿致电super.onConfigurationChanged(newConfig)

答案 2 :(得分:0)

将行android:configChanges="orientation"添加到清单文件中的活动部分。这将告诉Android您想要自己处理方向更改。

然后实施活动的onConfigurationChanged()方法并随意处理更改。在你的情况下,你可能根本就什么都不做。

答案 3 :(得分:-1)

在每个活动

下的清单中添加以下行
<activity android:name="MyActivity" android:screenOrientation="landscape"></activity>