使用math_parent和0dp作为宽度时,高度为0dp的ConstraintLayout视图具有不同的实际高度

时间:2019-12-09 16:46:04

标签: android kotlin android-constraintlayout

可以通过一个示例更好地描述此问题:

您可以在生成的渲染版式中看到,first_viewsecond_view的高度不同,唯一不同的是first_view使用

  • layout_width=match_parent

代替

  • layout_width="0dp";
  • layout_constraintStart_toStartOf="parent";
  • layout_constraintEnd_toEndOf="parent"

是错误还是预期的行为?

1 个答案:

答案 0 :(得分:1)

取自official docs

  

重要提示:不建议将MATCH_PARENT用于包含在   ConstraintLayout。可以通过使用定义类似的行为   MATCH_CONSTRAINT与相应的左/右或上/下   约束设置为“父”。

official training

  

注意:不能将match_parent用于ConstraintLayout中的任何视图。   而是使用“匹配约束”(0dp)。

也就是说,您的示例也是无效的,因为您对高度使用0dp(匹配约束),但未指定底部约束,这可能会导致视图的意外行为。要匹配维度的约束,您需要声明两端。