153

我已经看到了能够为一个活动指定两个单独的布局 xml 文件的引用,一个用于纵向,一个用于横向。不过,我还没有找到任何关于如何做到这一点的信息。如何为每个活动指定哪个 xml 文件是纵向布局,哪个是横向布局?

是否也可以为不同的屏幕尺寸指定不同的布局?如果是这样,这是如何完成的?

4

10 回答 10

217

创建一个layout-land目录并将布局 XML 文件的横向版本放在该目录中。

于 2010-01-23T17:47:17.513 回答
63

您只需根据方向和分辨率将其放在具有不同名称的单独文件夹下,设备将自动为其屏幕设置选择正确的文件夹

更多信息在这里:

http://developer.android.com/guide/practices/screens_support.html

在“屏幕大小和密度的资源目录限定符”下

于 2010-01-23T17:52:26.167 回答
30

鼠标爱好者!我说右键单击资源文件夹Add new resource file,然后从可用限定符中选择orientation

在此处输入图像描述


但是您仍然可以手动执行此操作,将子文件夹“layout-land”添加到

“你的项目目录\app\src\main\res”

从那时起,此子文件夹下的任何 layout.xml 文件将仅适用于自动横向模式。

纵向模式使用“layout-port”。

于 2016-09-17T14:45:25.223 回答
22

只是提醒:

如果您定义了它,请orientationandroid:configChanges清单文件中的活动属性中删除:xml

android:configChanges="orientation|screenLayout|screenSize"
于 2013-10-30T09:19:33.800 回答
20

Android Studio 3.xx 和 Android Studio 4.xx 的最快方法

1.转到活动布局的设计选项卡

2.在顶部你应该按下预览按钮的方向,有一个选项来创建一个横向布局(检查图像),一个新的文件夹将被创建为你的特定方向的xml布局文件

在此处输入图像描述

于 2019-07-16T06:01:08.493 回答
5

我认为在最新的 Android 版本中最简单的方法是转到 XML(不是文本)的设计模式。

然后从菜单中选择选项 - 创建景观变化。这将在几秒钟内轻松创建一个横向 xml。最新的 Android Studio 版本允许您立即创建横向视图。

在此处输入图像描述

我希望这对你有用。

于 2019-02-25T07:57:18.017 回答
4

创建一个新目录layout-land,然后在与目录相同的名称中创建文件xml, 并将您的内容与横向模式对齐。layout-landlayout

请注意,两者中的内容 idxml相同。

于 2016-04-23T11:22:29.967 回答
4

下面的最后一行是应用两个量词的示例:横向和最小宽度(600dp) 屏幕。用你需要的更新 600dp。

res/layout/main_activity.xml                # For handsets
res/layout-land/main_activity.xml           # For handsets in landscape
res/layout-sw600dp/main_activity.xml        # For 7” tablets
res/layout-sw600dp-land/main_activity.xml   # For 7” tablets in landscape

以上也适用于dimens

res/values/dimens.xml                # For handsets
res/values-land/dimens.xml           # For handsets in landscape
res/values-sw600dp/dimens.xml        # For 7” tablets
res/values-sw600dp-land/dimens.xml   # For 7” tablets in landscape

一个有用的设备指标:https ://material.io/tools/devices/

于 2019-02-26T17:26:42.583 回答
2

或者使用这个:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:scrollbars="vertical" 
            android:layout_height="wrap_content" 
            android:layout_width="fill_parent">

  <LinearLayout android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

     <!-- Add your UI elements inside the inner most linear layout -->

  </LinearLayout>
</ScrollView>
于 2013-04-15T00:34:53.900 回答
1
  1. 右键单击 res 文件夹,
  2. 新建 -> Android 资源文件
  3. 在可用限定符中,选择方向,
  4. 添加到选择的限定符
  5. 在屏幕方向中,选择横向
  6. 按确定

使用 Android Studio 3.4.1,它不再创建layout-land文件夹。它将创建一个文件夹并将两个布局文件放在一起。

在此处输入图像描述

于 2019-06-09T02:46:50.677 回答