为什么layout_weight在TextInputLayout的子级中不起作用?

时间:2019-12-08 17:52:56

标签: android xml

我有以下内容:

   <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:alpha=".9"
        android:background="@color/light_gray_search"
        android:padding="16dp">

    <com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="1"
        app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <ImageView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.2"
            android:importantForAccessibility="no"
            app:srcCompat="@drawable/myImage" />

        <AutoCompleteTextView
            android:id="@+id/myAutoCompleteTextView"
            android:layout_weight="0.8"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="@string/myAutoHint"
            android:imeOptions="actionNext"
            android:inputType="textPersonName"
            android:maxLines="1"/>

    </com.google.android.material.textfield.TextInputLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

知道TextInputLayout 扩展 LinearLayout,并且我正在使用LinearLayout xml属性(weightSumorientation,{ {1}})首先对我的imageView进行水平分配,然后对autoCompleteText进行

为什么这不起作用?

当前结果:即使分配了layout_weight,图像和文本的宽度也均为零。

1 个答案:

答案 0 :(得分:0)

实际上找到了答案,并将其发布在这里以供将来参考:

添加一个LinearLayout,并使LinearLayout的子元素在水平方向上分别为ImageViewTextInputLayout

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
android:orientation="horizontal"
android:weightSum="1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent">

<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:importantForAccessibility="no"
app:srcCompat="@drawable/myImage"
android:layout_gravity="center_vertical"/>

<com.google.android.material.textfield.TextInputLayout
..  
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.9"
..>  

<AutoCompleteTextView
../>

</com.google.android.material.textfield.TextInputLayout>

</LinearLayout>