如何指定不同的纵向和横向布局?

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

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

180753 次浏览

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

你只需要把它放在不同的文件夹下,根据不同的方向和分辨率不同的名称,设备会自动选择正确的一个屏幕设置

更多信息请点击:

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

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

或者用这个:

<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>

提醒一下:

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

android:configChanges="orientation|screenLayout|screenSize"

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

注意,两个 xml中的内容 id 是相同的。

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

enter image description here


但是你仍然可以手动完成,比如说,添加子文件夹“ layout- 土地”到

“ Your-Project-Directory app src main res”

因此,这个子文件夹下的任何 layout.xml 文件都只适用于横向模式 自然而然地

使用“布局-端口”的纵向模式。

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

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

enter image description here

我希望这对你有用。

下面的最后一行是应用两个量词的示例: 景观和最小宽度(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

以上也适用于维度

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/

  1. 右键单击 res 文件夹,
  2. 新建-> Android 资源文件
  3. 在“可用限定符”中,选择“方向”,
  4. 添加到选择限定词
  5. 在屏幕方向,选择横向
  6. 按 OK 键

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

enter image description here

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

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

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

enter image description here

更新: 在较新的版本中,选项已移动到。Xml 文件名按钮。(非常感谢奥利弗 · 霍夫曼指出这一点)。

enter image description here

在 Android Studio Chipmunk 中,您正在寻找的选项在这里。

对于横向,在 XML 名称下拉列表中的选项是“创建横向限定符”。
对于不同的屏幕大小,选项是“创建平板限定符”

这些都是从以前的 Android Studio 版本中移除的。

enter image description here

资料来源: https://stackoverflow.com/a/74047314/3718756