gpt4 book ai didi

android - 将元素与不同 ConstraintLayout 中的元素对齐

转载 作者:行者123 更新时间:2023-11-30 01:15:47 25 4
gpt4 key购买 nike

我目前正在熟悉新的 ConstraintLayout,并尝试将它们与卡片 View 相结合,但在尝试对齐两个 CardView 之间的元素时遇到了障碍

我想在这张图片中对齐

  • 带有装甲等级的心形图
  • 发起倡议的 5 人
  • 速度最快的 10

The current status

但我似乎无法做到这一点。这是我尝试过的:

ConstraintLayout
-CardView
-ArmorClassTextView
-...
-CardView
-HitPointView
-...

这不起作用,因为添加到嵌套元素的约束似乎被忽略了。

LinearLayout
-CardView
-ConstraintLayout
-ArmorClassTextView
-...
-CardView
-ConstraintLayout
-HitPointView
-...

在这里,HitPointView 可以与其 ConstraintLayout 中的其他元素对齐,但不能与另一个元素中的元素对齐。如果我尝试,我会收到一条错误消息,指出引用的元素不是同一 RelativeLayout 中的同级元素。

你能给我一个关于如何完成这种对齐的提示吗?我已经没有想法了。

最佳答案

它实际上不工作是有充分理由的:ConstraintLayout 看到的所有内容(它可以布局的内容)都是它的直接子级(事实上,就像任何其他布局一样)。这就是为什么您不能在这两个卡片 View 之间设置约束,因为卡片 View 是您在这种情况下可以应用约束的唯一元素。

现在,我们正在考虑在未来实现一些可能有助于这种情况的事情(虚拟 View 组、绘制元素……)。但那是针对 ConstraintLayout 的 future 版本,所以现在对你来说并没有真正的帮助:)

也就是说,作为解决方法,您今天可以做几件事:

  • 如果使用两个 ConstraintLayout,您可能想要添加垂直指南并在两个布局中创建相同的指南;然后将内部元素约束到这些准则。具体来说,您可以在 33% 和 66% 的相对位置创建两个垂直指南,以便基本上创建 3 列,然后通过连接每一边来居中元素:| <- A -> | <- B -> | <- C -> | .然后为您的第二个 cardview 复制该设置。不是很好,但可能更容易维护。

  • 使用单个 ConstraintLayout,但不是将元素设置在卡片 View 内部,而是将它们移出卡片 View 。在 xml 的开头声明卡片 View ,然后是小部件。以正确调整大小(使用 0dp)的方式将卡片 View 限制到小部件

关于android - 将元素与不同 ConstraintLayout 中的元素对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37885364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com