Android layout 为什么';TextInputLayout是否跟随父约束Layout的宽度?

Android layout 为什么';TextInputLayout是否跟随父约束Layout的宽度?,android-layout,android-cardview,android-constraintlayout,Android Layout,Android Cardview,Android Constraintlayout,您可以在这里看到,我有一个CardView,它是ConstraintLayout的父级 此外,CardView布局的宽度设置为与父级匹配。并且ConstraintLayout设置为与父项匹配。因为CardView和ConstraintLayout是整个布局区域的宽度,所以所有这些都有效 问题 您还可以看到我有一个TextInputLayout,它是ConstraintLayout的子级。布局宽度的唯一设置选项是匹配约束(如下图所示) 当我选择match_constraint时,该值会自动设置

您可以在这里看到,我有一个CardView,它是ConstraintLayout的父级

此外,CardView布局的宽度设置为与父级匹配。并且ConstraintLayout设置为与父项匹配。因为CardView和ConstraintLayout是整个布局区域的宽度,所以所有这些都有效

问题 您还可以看到我有一个TextInputLayout,它是ConstraintLayout的子级。布局宽度的唯一设置选项是匹配约束(如下图所示)

当我选择match_constraint时,该值会自动设置为0dp,小部件在屏幕上显示为0dp

这是一个Bug吗?

为什么TextInputLayout不跟随ConstraintLayout的宽度(整个布局的宽度)——类似于match_父级?
你能告诉我解决这个问题的正确方法吗?TextInputLayout的布局宽度是否应该设置为不同的值?

如果查看布局的XML,我会看到TextInputLayout的以下内容

<android.support.design.widget.TextInputLayout
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:id="@+id/description_layout"
    app:layout_constraintTop_toTopOf="parent" 
app:layout_constraintStart_toStartOf="parent">
然后布局看起来像我期望的那样。这似乎解决了问题。对吗


对于
视图
不应使用
match\u parent
,这些视图是
ConstraintLayout
的子视图,如下所述:

重要提示:对于ConstraintLayout中包含的小部件,不建议使用MATCH_父项。类似的行为可以通过使用MATCH_约束来定义,并将相应的左/右或上/下约束设置为“parent”

在本例中,您缺少的是
文本输入布局
结束
约束。要使用
0dp
(匹配约束),需要为该尺寸指定两个约束:

<android.support.design.widget.TextInputLayout
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:id="@+id/description_layout"
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintEnd_toEndOf="parent" />

我试过了,这就是我需要的答案。非常感谢。如果没有你的帮助,我永远不会知道去寻找它。
<android.support.design.widget.TextInputLayout
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:id="@+id/description_layout"
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintEnd_toEndOf="parent" />