3

我很确定它ConstraintLayout不应该用于下面描述的用例,但是,为了讨论,将垂直对齐的组件居中的最佳方法是什么ConstraintLayout(因为它可能在LinearLayout重力设置为“中心”和垂直方向) ?

可以通过向所有四个边添加约束来使单个组件居中。它将完美地定位在屏幕中央。但是如果我们有多个相互约束的组件,那么它开始变得很棘手,因为所有组件都会倾向于重叠(如果约束到顶部和底部,这是预期的行为)或者新添加的组件将低于居中的组件(或高于)。

通过在居中的组件上方添加一个组件,在下方添加一个组件,我最终得到了一个感觉并不完美的解决方案。这样组件将垂直对齐并且几乎居中:)。

这是一个例子:

  1. 居中组件:

居中组件

  1. 上面的组件,被限制在中心

在此处输入图像描述

  1. 下面的组件,被限制在中心

在此处输入图像描述

放置在上方和下方的其他组件分别被约束到最近的组件(上方或下方)。正如您在第一张图片中看到的那样,组件没有完全居中,因为“国家”字段下方有三个组件,上方有两个组件。任何设计师都会注意到这一点:),因此是否可以使用ConstraintLayout和集中整个组件组(或者它不应该像这样工作)

PS LinearLayoutwithgravity="center"可能是这种情况下的最佳解决方案。

4

0 回答 0