为什么在应用视图绑定时 Constraintlayout 项目不可见?

Why ConstraintlLayout items are not visible when applying View Binding?

这是 recyclerview 项布局文件:

    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:paddingHorizontal="16dp"
    android:paddingVertical="12dp">

    <com.paypal.android.p2pmobile.common.widgets.BubbleView
        android:id="@+id/activity_list_item_contact_image"
        android:layout_width="@dimen/ui_size_xl_2"
        android:layout_height="@dimen/ui_size_xl_2"
        android:layout_marginStart="4dp"
        android:layout_marginTop="4dp"
        tools:ignore="ContentDescription"
        app:initialsTextSize="@dimen/text_size_primary"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"/>

    <TextView
        android:id="@+id/activity_list_item_name"
        style="@style/activity_list_item_name"
        android:layout_width="0dp"
        android:layout_height="@dimen/ui_size_sm"
        android:gravity="center|start"
        android:text="Abc India Pvt. Ltd."
        tools:ignore="HardcodedText"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toEndOf="@id/activity_list_item_contact_image"
        app:layout_constraintEnd_toStartOf="@id/activity_list_item_amount"
        android:layout_marginHorizontal="16dp"/>

    <LinearLayout
        android:id="@+id/activity_list_item_status_container"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        app:layout_constraintTop_toBottomOf="@+id/activity_list_item_name"
        app:layout_constraintStart_toEndOf="@id/activity_list_item_contact_image"
        app:layout_constraintEnd_toStartOf="@id/activity_list_item_amount"
        android:layout_marginHorizontal="16dp" >

        <com.paypal.uicomponents.UiBadge
            android:id="@+id/activity_list_item_badge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            tools:visibility="visible"
            android:layout_marginEnd="6dp"
            android:text="Due"
            app:uiStrokeWidth="0dp"
            style="@style/UiBadge.Warning"
            tools:ignore="HardcodedText" />

        <TextView
            android:id="@+id/activity_list_item_date"
            style="@style/activity_list_item_details"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/ui_size_xs"
            android:gravity="center|start"
            android:text="Yesterday"
            tools:ignore="HardcodedText" />

        <ImageView
            android:id="@+id/activity_list_item_status_icon"
            android:layout_width="@dimen/ui_size_xs"
            android:layout_height="@dimen/ui_size_xs"
            android:layout_marginEnd="6dp"
            android:scaleType="fitXY"
            tools:ignore="ContentDescription"
            app:srcCompat="@drawable/ui_purchase_protection_alt" />

        <TextView
            android:id="@+id/activity_list_item_status_text"
            style="@style/activity_list_item_details"
            android:layout_width="match_parent"
            android:layout_height="18dp"
            android:gravity="center|start"
            android:text="Request Received"
            tools:ignore="HardcodedText" />

    </LinearLayout>

    <TextView
        android:id="@+id/activity_list_item_notes"
        style="@style/activity_list_item_details"
        android:layout_width="0dp"
        android:maxHeight="@dimen/ui_size_lg"
        android:layout_marginTop="4dp"
        android:maxLines="2"
        android:text="Personal notes - My checks haven't cleared yet hope u could loan me some money say around ."
        tools:ignore="HardcodedText"
        app:layout_constraintTop_toBottomOf="@+id/activity_list_item_status_container"
        app:layout_constraintStart_toEndOf="@id/activity_list_item_contact_image"
        app:layout_constraintEnd_toStartOf="@id/activity_list_item_amount"
        android:layout_marginHorizontal="16dp" />

    <TextView
        android:id="@+id/activity_list_item_status_desc"
        style="@style/activity_list_item_details"
        android:layout_width="0dp"
        android:maxHeight="@dimen/ui_size_lg"
        android:layout_marginTop="6dp"
        android:ellipsize="end"
        android:maxLines="2"
        android:text="Abc notes - Waiting for your request to be accepted. Please allow us some time to do this."
        tools:ignore="HardcodedText"
        app:layout_constraintTop_toBottomOf="@+id/activity_list_item_notes"
        app:layout_constraintStart_toEndOf="@id/activity_list_item_contact_image"
        app:layout_constraintEnd_toStartOf="@id/activity_list_item_amount"
        android:layout_marginHorizontal="16dp" />

    <TextView
        android:id="@+id/activity_list_item_amount"
        style="@style/UiTextView.Xl.Regular"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/ui_size_sm"
        android:layout_alignParentEnd="true"
        android:gravity="center|end"
        android:text="9.99"
        android:textColor="#737C7F"
        android:textSize="18sp"
        tools:ignore="HardcodedText"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintEnd_toEndOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

这个布局看起来像这样:

当我以正常方式实现 recyclerview adpater 时,此布局看起来不错。但是,当在 recyclerview 适配器中使用 View Binding 时, 只有那些 layout_width 未设置为 0dp 的元素可见。 UI 个具有 0dp 的元素不可见 。 如果我使用 RelativeLayout 而不是 ConstarintLayout. But, I want to use ConstraintLayout`,这个问题就会得到解决。 那么,可能是什么问题?我该如何解决这个问题?

我解决了这个问题。我从这个

替换了onCreateViewHolder()中的代码

ActivitySummaryListTxnItemV2Binding.inflate(LayoutInflater.from(container.getContext()));

对此:

ActivitySummaryListTxnItemV2Binding.inflate(LayoutInflater.from(container.getContext()), container, false);