Android - 如何在 xml 配置中针对不同的屏幕尺寸锁定不同的屏幕方向

Android - How can I lock different screen orientation for different screen sizes in xml configuration

有没有办法针对不同的屏幕尺寸锁定不同的屏幕方向?那么对于最小宽度小于 600 dp 的屏幕锁定纵向方向,对于最小宽度大于 600 dp 的屏幕锁定横向方向?我知道这可以通过 setRequestedOrientation 以编程方式完成,但是可以通过某种方式在 xml 资源中完成吗?在 Android.manifest 中,还是通过引用 res 文件夹中定义的不同资源值?

选项 1:对 AndroidManifest.xml 中的每个 activity 使用以下代码:

android:screenOrientation="nosensor"

"nosensor" 设置告诉您的应用程序使用设备的自然方向,并且在用户旋转设备时不会改变。因此,平板电脑将为您的应用使用横向,而手机将始终使用纵向。

接下来,您可以通过在 res 文件夹中创建一个名为 layout-land 的文件夹来为横向原生设备(即平板电脑)创建一个单独的布局文件。将平板电脑的 XML 布局文件放入 layout-land 文件夹。

选项 2:使用最小宽度限定符,如 Android 开发人员文档中所述:http://developer.android.com/training/multiscreen/screensizes.html#TaskUseSWQuali

在这种情况下,您将在名为 layout-sw600dp 的 res 目录中创建一个布局文件夹。在那里,您将为超过 600dp 的设备放置备用 XML 文件。在XML文件的顶层为你的线性布局,或者相对布局,例如,一定要包括以下内容:

android:orientation="horizontal"

在小于 600dp 的设备的主要 XML 文件中,您将强制它们为垂直方向:

android:orientation="vertical"