有没有办法锁定不同屏幕尺寸的不同屏幕方向?那么对于最小宽度小于600 dp的屏幕来锁定纵向方向,对于最小宽度大于600 dp的屏幕来锁定横向方向?我知道这可以用setRequestedOrientation
以编程方式完成,但是可以用xml资源以某种方式完成吗?在Android.manifest中,还是通过引用res文件夹中定义的不同资源值?
答案 0 :(得分:1)
选项1:对AndroidManifest.xml中的每个活动使用以下代码:
android:screenOrientation="nosensor"
" nosensor"设置告诉您的应用使用设备的自然方向,并且如果用户旋转设备则不会更改。因此平板电脑将为您的应用程序使用横向方向,而手机将始终使用纵向方向。
接下来,您可以通过在res文件夹中创建名为layout-land的文件夹,为横向本机设备(即平板电脑)创建单独的布局文件。将平板电脑的XML布局文件放入layout-land文件夹中。
选项2:使用最小宽度限定符,如Android开发人员文档中所述:http://developer.android.com/training/multiscreen/screensizes.html#TaskUseSWQuali
在这种情况下,您将在res目录中创建一个名为layout-sw600dp的布局文件夹。在那里,您将为超过600dp的设备放置备用XML文件。例如,在线性布局的XML文件的顶层或相对布局中,请确保包含以下内容:
android:orientation="horizontal"
在主要XML文件中,对于小于600dp的设备,您将强制它们垂直方向:
android:orientation="vertical"