【发布时间】:2017-12-19 09:10:53
【问题描述】:
我最近开始使用 ConstraintLayout。正如我所发现的,大多数功能都非常简单明了,并且在文档中通过示例、文本和视频教程等进行了很好的解释。
我想到的是如何尽可能优雅地解决这个“难题”?
如您所见,在布局的右侧部分,我有多个左对齐的视图。在最后一行,有 3 个视图水平对齐(它们之间也对齐 TOP)。 问题是:如果我将该行的第一个视图的可见性设置为 GONE,则其他两个(在同一行中)按预期向左移动,但下面的一个(垂直对齐的最后一行)越过之前的行(因为它的constraintTop 属性设置为视图的底部设置为 GONE)。
我能想到的唯一解决方案是使用 ViewGroup 对这 3 个视图进行分组,并将约束添加到最后一行视图。
我是否遗漏了 ConstraintLayout 上的一些可以帮助我的情况的属性?如果其中一个设置在 GONE View 上,可能是某种后备(或多个)约束?
对不起,如果我的解释看起来很深奥,也许这些图片会帮助你更多:)
LE:添加布局:https://gist.github.com/DoruAdryan/7e7920a783f07b865489b1af0d933570
【问题讨论】:
-
似乎您的视图取决于
View.GONE视图,这不是一个好主意。 -
是否有另一种方法可以像这样使用不同的视图解决方案来对齐它们?顺序必须保持不变,那些水平对齐的 View 可能每一个都消失了。
-
我会把每一行做成一个容器,让孩子们决定如果有东西消失了如何对齐。
-
请使用 xml 代码更新您的问题。您不需要嵌套视图组。
-
@RamiJemli 已更新。
标签: android android-constraintlayout