java - list screenOrientation 属性与 setRequestedOrientation

标签 java android android-manifest android-lifecycle

我试图了解在 list 文件上设置 screenOrientation 之间的差异,如下所示

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

与在生命周期的 onCreate 部分期间执行此操作相比,如下所示

`setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);`

据我了解,第一种方法将以纵向模式创建 Activity ,无论创建时的手机方向如何(这意味着即使您横向握住手机,该 Activity 也将以纵向模式创建),而第二种方法将以手机方向给定的配置创建 Activity ,然后更改(因此,如果您将手机保持在横向位置并创建 Activity ,您将看到横向创建的 Activity ,然后将其自身重新配置为纵向模式)。

我说得对吗?如果我不是,谁能向我解释一下到底有什么区别?

最佳答案

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

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

基本上你会得到相同的结果。不同之处在于, list 中定义的方向从 Activity 创建之初就生效。

您可以调用 setRequestedOrientation() 方法根据条件或事件以编程方式设置它。例如,您可以使用 setRequestedOrientation() 方法单击按钮将方向从纵向更改为横向。或者通过传递参数 ActivityInfo.SCREEN_ORIENTATION_SENSOR 使其依赖于传感器。

关于java - list screenOrientation 属性与 setRequestedOrientation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53675416/

相关文章:

java - 加密大字节数组

Android Studio 3.5重构问题

java - j2me网络

java - 自制堆栈等于方法

android - 如何在改造中将 api url 附加到基本 URL?

java - android.widget.ProgressBar 中没有可用的默认构造函数

java - Spring 4 Web服务HTTP 500 - IllegalStateException : The mapped controller method class is not an instance of the actual controller bean

java - 在更改 Excel 中其他单元格值时更改单元格值 [通过 Apache POI 进行数据验证]

android - 从 android play 下载时,我的应用程序不支持华为媒体垫 (hws7300w)

android - 如何在 AndroidManifest.xml 中指定超过 1 个自定义应用程序作为我的应用程序?