使用ConstraintsLayouts设计不同的屏幕尺寸

时间:2016-07-18 10:07:42

标签: java android ios screen-size android-constraintlayout

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

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

    1. 为不同的屏幕方向设计布局是否仍然需要不同的Layout.xml文件i-e; layout_landscape.xml layout_portraint.xml

2 个答案:

答案 0 :(得分:2)

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

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

您还有指导方针和偏见中心,这为您提供了很大的灵活性。

关于屏幕方向,完全取决于您 - 如果不执行任何操作,您定义的布局将应用于任一方向。所以,它会“奏效”。但通常,您需要在纵向和横向之间使用不同的 UI。在这种情况下,您确实可以创建两个布局文件,通常的系统会为您选择合适的布局文件。

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

Screeen popup

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

enter image description here

答案 1 :(得分:1)

  

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

如果用不同的屏幕表示手机和平板电脑,则必须为它们创建不同的布局。一种方法是定义layout-sw360dplayout-sw600dplayout-sw720dp

  

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

你可能想看看chains and guidelines

  

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