RecyclerView не отображается во фрагменте нижнего листа

У меня есть один фрагмент нижнего листа, который содержит один заголовок, один подзаголовок и одно представление переработчика, чтобы показать какое-то предложение. Ниже представлен макет.

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/root_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="10dp"
        android:paddingRight="10dp">

        <androidx.appcompat.widget.AppCompatImageView
            android:id="@+id/back"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="22dp"
            android:layout_marginTop="26dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@drawable/icon_back_arrow" />

        <TextView
            android:id="@+id/header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="26dp"
            android:text="header"
            android:textSize="20sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <TextView
            android:id="@+id/offer_sub_title"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:gravity="center"
            android:text=" sub title offer"
            android:textSize="16sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/header" />

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recycler_view"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_marginTop="40dp"
            app:layout_constraintBottom_toTopOf="@id/space"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/offer_sub_title" />
    </androidx.constraintlayout.widget.ConstraintLayout>

Здесь мой вид ресайклера не виден. Я установил android:layout_heightкак 0dp. Если я изменю его на wrap_content, вид ресайклера виден, но перекрывается с подзаголовком.

1 ответ

Эй! У меня такая же проблема. Похоже на ошибку между ConstraintLayout и BottomSheet.

Мое решение - использовать LinearLayout вместо ConstraintLayout. Мой код:

          <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

    <TextView
        enter code here`android:id="@+id/category_current_tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/half_margin"
        android:paddingBottom="@dimen/half_margin"
        android:text="@string/category_label_str"
        android:textAlignment="center"
        android:textSize="@dimen/main_text_size"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/categories_recycler"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginStart="@dimen/main_margin"
        android:layout_marginEnd="@dimen/main_margin"
        tools:listitem="@layout/category_item" />

</LinearLayout>
Другие вопросы по тегам