setRequestedOrientation

setRequestedOrientation

我试图了解在清单文件中设置screenOrientation的区别,如下所示

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


而不是像这样在生命周期的onCreate阶段这样做

`setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);`


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

我对么 ?如果我不是,那么谁能确切地解释我的区别呢?

最佳答案

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

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

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

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

10-04 14:50