我已经开始深入研究今年在IO上宣布的Constraints Layout。这看起来非常有前景,使您的布局非常有效。我见过Google提供的codelab excersize。但是,我有以下问题需要解决。
目前,我设计了布局并为特定设备/屏幕组设置了视图的边距和填充等。将这些值保存在dimens.xml
文件中。这是设计布局的一种非常痛苦的方法。在为多个屏幕设计时,Android ConstraintsLayout 是否模仿iOS的 AutoConstraintsLayout ?
答案 0 :(得分:2)
是的,ConstraintLayout的整个要点(并且就此而言,自Android 1.0以来的任何Android布局)都能够处理不同的屏幕(尺寸,密度......)。您没有什么特别的事情要做(除了指定小部件之间的约束)。
如果您想针对不同的屏幕尺寸进行设计,请将边距视为“最小”间距;并在窗口小部件之间创建约束,以便相对于其他窗口小部件定位窗口小部件。
您还有指导方针和偏见中心,这为您提供了很大的灵活性。
关于屏幕方向,完全取决于您 - 如果不执行任何操作,您定义的布局将应用于任一方向。所以,它会“奏效”。但通常,您需要在纵向和横向之间使用不同的 UI。在这种情况下,您确实可以创建两个布局文件,通常的系统会为您选择合适的布局文件。
最后,您可以通过更改Android Studio中弹出窗口中的当前屏幕定义,轻松测试您正在处理的布局在不同屏幕/设备中的行为:
您还可以使用调整大小手柄查看任意屏幕尺寸的布局。
答案 1 :(得分:1)
如何使用ConstraintLayouts为不同的布局设计布局 屏幕尺寸?
如果用不同的屏幕表示手机和平板电脑,则必须为它们创建不同的布局。一种方法是定义layout-sw360dp
,layout-sw600dp
和layout-sw720dp
。
目前我设计了布局并设置了视图'边距和填充 等特定设备/屏幕组。将这些值保存在 dimens.xml文件。
你可能想看看chains and guidelines。
是否仍需要为不同的屏幕方向设计布局 不同的Layout.xml文件i-e; layout_landscape.xml和 layout_portraint.xml?
是