如何用 RecyclerView 填充屏幕的其余部分?

How to fill the rest of the screen with RecyclerVeiw?

在下图中,您可以看到 RecyclerView 延伸到我的屏幕下方。这就是为什么我看不到最后一项的原因。我只希望 RecyclerView 可以滚动。

我可以只用 xml 解决这个问题吗?

这是my_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<layout 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"
    tools:context=".screens.mijnhuis.HuisFragment">

    <data>
        <import type="android.view.View"/>
        <import type="android.text.TextUtils"/>
        <variable
            name="varName"
            type="be.vives.ti.summatieve.screens.mijnhuis.HuisVM"/>
    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="vertical">

        <TextView
            android:id="@+id/adres"
            style="@style/MainText"
            android:layout_width="wrap_content"
            android:layout_height="100dp"
            android:layout_marginTop="50dp"
            android:text='@{TextUtils.isEmpty(varName.huis.straat) ? "U heeft nog geen adres ingesgteld":@string/adres(varName.huis.straat, varName.huis.nummer, varName.huis.gemeente, varName.huis.postcode)}'
            android:textAlignment="center"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <Button
            android:id="@+id/button2"
            style="@style/btn"
            android:layout_marginStart="20dp"
            android:onClick="@{() -> varName.btnNavToEditHuis()}"
            android:text="@string/edit"
            app:layout_constraintStart_toEndOf="@+id/button3"
            app:layout_constraintTop_toBottomOf="@+id/adres" />

        <Button
            android:id="@+id/button3"
            style="@style/btn"
            android:layout_marginEnd="110dp"
            android:onClick="@{() -> varName.btnNavToAdd()}"
            android:text="@string/addDak"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="@+id/button2" />

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/list"
            android:name="be.vives.ti.summatieve.HuisFragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:layout_marginEnd="10dp"
            app:layoutManager="LinearLayoutManager"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/button3"
            tools:context=".screens.mijnHuis.HuisFragment"
            tools:listitem="@layout/detail_dak" />

    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

在此图像中,您可以看到我的 RecyclerView 延伸到我的屏幕下方。

Image

欢迎 Bjop,试试这个:

<androidx.recyclerview.widget.RecyclerView
        android:id="@+id/list"
        android:name="be.vives.ti.summatieve.HuisFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginStart="10dp"
        android:layout_marginEnd="10dp"
        app:layoutManager="LinearLayoutManager"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button3"
        tools:context=".screens.mijnHuis.HuisFragment"
        tools:listitem="@layout/detail_dak" />

您缺少底部约束。尝试这样设置:

<androidx.recyclerview.widget.RecyclerView
        android:id="@+id/list"
        android:name="be.vives.ti.summatieve.HuisFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginStart="10dp"
        android:layout_marginEnd="10dp"
        app:layoutManager="LinearLayoutManager"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button3"
        app:layout_constraintBottom_toBottomOf="parent"
        tools:context=".screens.mijnHuis.HuisFragment"
        tools:listitem="@layout/detail_dak" />