4

我已经开始深入研究今年在 IO 上宣布的约束布局。这看起来很有前途,并使您的布局非常有效。我看过 Google 提供的 codelab excersize。但是,我有以下问题想要解决。

  1. 如何使用ConstraintLayouts来设计不同屏幕尺寸的布局?

目前我为特定的设备/屏幕组设计布局并设置视图的边距和填充等。将这些值保存在dimens.xml文件中。这是设计布局的一种非常痛苦的方法。Android ConstraintsLayout在设计多屏时是否也模仿了iOS 的AutoConstraintsLayout ?

  1. 为不同的屏幕方向设计布局是否仍然需要不同的 Layout.xml 文件,即;layout_landscape.xmllayout_portraint.xml
4

2 回答 2

2

是的,ConstraintLayout 的全部意义(以及就此而言,自 Android 1.0 以来的任何 Android 布局)都是能够处理不同的屏幕(尺寸、密度......)。您没有什么特别的事情要做(除了指定小部件之间的约束)。

如果要针对不同的屏幕尺寸进行设计,请将边距视为“最小”间距;并在小部件之间创建约束,以便您相对于其他小部件定位小部件。

你也有指导方针和偏见中心,这给了你很大的灵活性。

关于屏幕方向,完全取决于您——如果您什么都不做,您定义的布局将应用于任一方向。所以,它会“工作”。但通常,您希望在纵向和横向之间使用不同的UI。在这种情况下,您确实可以创建两个布局文件,并且通常的系统会为您选择正确的一个。

最后,您可以通过在 Android Studio 的弹出窗口中更改当前屏幕定义,轻松测试您正在处理的布局在不同屏幕/设备中的表现:

屏幕弹出

您还可以使用调整大小手柄来查看任意屏幕尺寸的布局。

在此处输入图像描述

于 2016-08-10T16:46:51.783 回答
1

如何使用 ConstraintLayouts 来设计不同屏幕尺寸的布局?

如果不同的屏幕是指手机和平板电脑,那么您必须为它们创建不同的布局。一种方法是定义layout-sw360dp和。layout-sw600dplayout-sw720dp

目前我为特定的设备/屏幕组设计布局并设置视图的边距和填充等。将这些值保存在 dimens.xml 文件中。

你可能想看看锁链和指南

为不同的屏幕方向设计布局是否仍然需要不同的 Layout.xml 文件,即;layout_landscape.xml 和 layout_portraint.xml?

是的。

于 2017-06-29T14:31:50.543 回答