我已经搜索了很长时间,但没有任何效果。我有一个活动,我希望在活动的整个生命周期内锁定它的方向。这个方向必须是开始方向。我的意思是,当活动从任何方向开始时,它必须忽略方向变化。我怎样才能做到这一点 ?谢谢回复。。
问问题
738 次
4 回答
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>
于 2013-09-19T08:57:13.103 回答
0
另一种选择是:onConfigurationChanged()
像这样覆盖如何在 android 2.3.3 中使用 onConfigurationChanged() 和 newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE
但不要打电话super.onConfigurationChanged(newConfig)
于 2013-09-19T09:00:07.577 回答
0
将该行添加android:configChanges="orientation"
到清单文件中的活动部分。这将告诉 Android 您想自己处理方向更改。
然后实现onConfigurationChanged()
你的activity的方法,随意处理变化。在你的情况下,你可能只是什么都不做。
于 2013-09-19T09:00:08.280 回答
-1
在每个活动下的清单中添加以下行
<activity android:name="MyActivity" android:screenOrientation="landscape"></activity>
于 2013-09-19T08:49:03.213 回答