#android #user-interface #android-constraintlayout #android-viewbinding
#Android #пользовательский интерфейс #android-constraintlayout #android-привязка к представлению
Вопрос:
Это 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 $40."
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="$149.99"
android:textColor="#737C7F"
android:textSize="18sp"
tools:ignore="HardcodedText"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
И этот макет выглядит следующим образом:
Этот макет выглядит нормально, когда я реализую adpater recyclerview обычным способом. Но при использовании View Binding
в адаптере recyclerview видны только те элементы, для которых layout_width
значение not установлено 0dp
. Элементы пользовательского интерфейса с 0dp
не видны. Эта проблема будет решена, если я использую RelativeLayout
вместо ConstarintLayout. But, I want to use
ConstraintLayout`. Итак, в чем может быть проблема? Как я могу решить эту проблему?
Ответ №1:
Я решил эту проблему. Я заменил код в onCreateViewHolder()
из этого
ActivitySummaryListTxnItemV2Binding.inflate(LayoutInflater.from(container.getContext()));
к этому:
ActivitySummaryListTxnItemV2Binding.inflate(LayoutInflater.from(container.getContext()), container, false);