10

在 Android Studio 布局编辑器中,我看到关于ConstraintLayout. 我知道它们都与多个视图在一条线上相互连接有关,但我并不清楚它们的区别。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

“包”和“链”有什么区别?

4

1 回答 1

25

简短的回答

是一组以垂直或水平线绑定在一起的视图。打包意味着视图应该非常紧密地保持在一起,即相互接触(不包括任何填充)。

Pack 意味着视图紧密地打包在一起。想象一下,您在旅行前将衣服紧紧地放在一个手提箱中。

在此处输入图像描述

注意事项:

  • 您可以水平或垂直打包视图。
  • 打包本身并不会限制彼此的视图。

    • 如果它们还没有被链接,那么打包移动它们在布局编辑器中的绝对位置,使它们彼此相邻。 在此处输入图像描述
    • 如果它们是链式的,则将链模式设置为packed将它们紧密地绑定在一起。

      app:layout_constraintHorizontal_chainStyle="packed"
      

      在此处输入图像描述

当两个相邻的视图彼此都具有约束时,就会出现链。想象一个铁链。

在此处输入图像描述

文档很好地说明了这一点。

在此处输入图像描述

这条链可以继续,链中的每个链接(视图)都有一个到其邻居的双向链接。

在此处输入图像描述

连锁模式/风格

正如我上面简要提到的,链条有不同的模式或样式。它们如下所示(来自docs的图像)

  1. 传播(默认)
  2. 向内蔓延
  3. 加权
  4. 包装好的

在此处输入图像描述

所有这些都是连锁的。只有底部的一个是包装好的

于 2017-10-09T05:43:45.837 回答