问题标签 [constraint-layout-chains]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1595 浏览

android - ConstraintLayout 以编程方式加权链

如果我尝试以编程方式在 ConstraintLayout 中创建加权链,则不会显示任何视图。在布局 xml 文件中创建它们可以正常工作。

我试图将视图宽度设置为 MATCH_CONSTRAINT,但随后它们消失了。同样设置水平权重也不会改变任何东西。

这有效:

这不起作用:

我如何在java中实现相同的功能?

0 投票
1 回答
287 浏览

android - ConstraintLayout 不支持垂直方向的权重 1:6:1

  1. 这是我的代码,但没有显示。
  2. 当我更改app:layout_constraintVertical_weight为其他值时,一切正常。
  3. 我尝试了其他组合,所有 1:6:1、2:12:2 等也都不起作用。
  4. 我目前的临时解决方案是将 6 更改为 6.00001

但现在我想知道为什么会这样。

0 投票
3 回答
2389 浏览

android-constraintlayout - 如何使用 ConstraintLayout 水平居中 2 个垂直视图

我试图在 ConstraintLayout 中复制这个简单的用例。基本上它是 2 个彼此对齐的视图,但在父级中居中。

在此处输入图像描述

如果没有 CL,它将如下所示

由于 CL 我正在努力如何将它们作为一个组居中,我可以将它们分别居中,并限制左父、右父,但是我希望该组居中,并且与该组一起使用左重力。我尝试在两个视图的左侧和右侧使用障碍,但它不会水平居中链。我认为,基本上我需要一条跨越障碍的水平链。

编辑:

0 投票
3 回答
16792 浏览

android - ConstraintLayout 不考虑最大高度

我正在尝试使用 ConstraintLayout 创建布局组合。为了简化我的案例,我的布局应该包含三个部分:

  1. 第一个布局(红色),应根据剩余空间增长并具有最大高度。
  2. 第二个布局(绿色),固定大小为 150dp,应始终低于第一个布局。
  3. 第一个布局(粉红色)也有 150dp 的固定大小,应该与视图底部对齐。

我正在努力的部分是为第一个布局(红色)设置最大高度。似乎 ConstraintLayout 忽略了我的“最大高度语句”:

这是我目前的结果(红色部分忽略了高度限制..):

在此处输入图像描述

这是完整的 XML:

0 投票
1 回答
4196 浏览

android - ConstraintLayout 左对齐两个水平链的中间元素?

我正在创建一个布局,我需要创建 2 行,每行三个元素。对于两行的中间元素(Qty4901),我希望文本左对齐。

在此处输入图像描述

我用chainStyleas创建了 2 个水平链spread_inside

这是布局xml:

https://gist.github.com/asheshb/cb2effdbb92e34d897672eb730339896

知道怎么做吗?

0 投票
3 回答
3981 浏览

android - ConstraintLayout 以不同方式处理多个水平链

我正在尝试设置我认为应该是一个简单的布局,其中ConstraintLayout包含一系列文本条目,标签的大小可以因语言而异。标签的右侧有一个障碍,因此即使标签长度发生变化,文本条目也会保持对齐。

我希望文本条目是标称大小(在本示例中,顶部为 200dp,其他为 150dp),但如果标签长且屏幕小,则能够根据需要缩小以适应屏幕。在横向模式下,或在更大的屏幕上,条目应该是它们的最大尺寸,并且靠着屏障向左对齐。

经过大量的试验和错误,我得到了下面的布局,通过将两个链设置为“spread_inside”并将最后一个链设置为“packed”。将它们全部设置为 spread_inside 会打乱布局(entry_2 缩小到其最小尺寸)。

工作版本 - 最后一个链条包装

所有链都设置为 spread_inside

这闻起来像是在未来的ConstraintLayout更新中将停止以这种方式工作的东西(这是使用 com.android.support.constraint:constraint-layout:1.1.0-beta5)。使用 beta4 时,此布局的行为有所不同(同样错误,但不同的是,beta4 将它们全部对齐在屏幕的右侧)。

我在这里错过了什么吗?还有其他人有类似的连锁模式吗?有没有更好的方法来做到这一点?

编辑:

我向 Google 的 ConstraintLayout 团队报告了这个问题,他们确认这是一个错误。一旦修复,我应该能够在没有复杂链条的情况下做到这一点。

0 投票
1 回答
23689 浏览

android - 在 ConstraintLayout 中右对齐视图而不进行裁剪

我正在创建一个对话框,其中两个按钮相对于父 ConstraintLayout 对齐。

一切都很好,直到按钮的文本变得很长。当一个或两个按钮的文本很长时,按钮会超出父级的边界,导致文本被剪切,如下图所示。我想处理文本较长的情况。

即期望的行为是

  • 当文本很长时,按钮应该换行
  • 按钮应保持在父级范围内并遵守父级填充
  • 按钮应与父级保持对齐

当按钮文本很短时,布局按预期工作:

在此处输入图像描述

当按钮文本很长时:

  • 当取消按钮文本很长时,取消文本会被截断。发生这种情况是因为按钮本身被推到了父级的边界之外。 在此处输入图像描述
  • 当确定按钮的文本很长时,取消超出父边界的文本,因为按钮被推到父边界之外。 在此处输入图像描述

布局代码

我尝试无济于事的事情:

  • 添加app:layout_constraintStart_toStartOf="parent"到取消按钮会导致按钮不再正确对齐,因此解决方案不正确
  • 将关闭按钮的结尾约束到接受按钮的开头会导致按钮不再右对齐
  • 使用layout_width="0dp"按钮和使用app:layout_constrainedWidth="true"没有效果
0 投票
3 回答
1169 浏览

java - 如何修改约束布局中的链长?

这是我的代码

结果我似乎得到了这个

模拟器截图

我如何将元素组合在一起?我希望他们靠得很近。

0 投票
1 回答
154 浏览

android - 如何使用链为约束布局中的单个视图设置动画?

我想动画视图,如图所示。怎么做?
单击此处查看图像
我有以下代码,但如何设置参数current

动画如何运作?
当用户在图标列表上移动手指时,用户触摸的当前图标的高度设置为 400。

其中 current 是 int 类型。

0 投票
2 回答
3852 浏览

android - 具有固定纵横比的 ConstraintLayout 链

我正在尝试根据以下布局构建具有 3 个 imageViews 的活动:

  • H 应该是父高度的 1/3
  • B 具有 1:3 的固定纵横比
  • A 和 C 应具有相同的宽度

我尝试了多种解决方案,但始终找不到一个有效的解决方案。最后一个使用:

  • 设置为父高度的 33% 的准则
  • A、B 和 C 之间的水平链
  • B 的固定纵横比
  • A、B 和 C 使用match_constraint尺寸

虽然我希望求解器会做出所需的布局,但似乎链定义了与屏幕截图中看到的所有视图相似的宽度。

我也尝试使用 aLinearLayout但似乎无法修复其中项目的纵横比。

在此处输入图像描述

非常感谢!