清单screenOrientation属性与setRequestedOrientation

时间:2018-12-07 19:01:04

标签: java android android-manifest android-lifecycle

我试图了解这样在清单文件中设置screenOrientation之间的区别

<activity android:name='.MainActivity' screenOrientation='portrait'/>

在这样的生命周期onCreate期间进行操作

`setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);`

据我所知,第一种方法将以纵向模式创建活动,而与创建时的手机方向无关(这意味着即使您将手机横向放置,活动也将以纵向模式创建),而第二种方法将以手机方向给定的配置创建活动,然后进行更改(因此,如果将手机保持在横向位置并创建活动,则会看到在横向上创建的活动,然后将其重新配置为纵向模式)。

我正确吗?如果我不是,那么谁能确切地向我解释这些区别是什么?

1 个答案:

答案 0 :(得分:0)

清单中设置的是一种初始值,可以使用setRequestedOrientation()方法进行操作。

您可以通过实现一个非常简单的应用程序来测试您编写的内容。

基本上,您将获得相同的结果。区别在于清单中定义的方向从创建活动的一开始就生效。

您可以调用setRequestedOrientation()方法以根据情况或事件以编程方式对其进行设置。例如,您可以使用setRequestedOrientation()方法在单击按钮时将方向从纵向更改为横向。或通过传递参数ActivityInfo.SCREEN_ORIENTATION_SENSOR使其与传感器相关。