RecyclerView Item не занимает весь экран - PullRequest
0 голосов
/ 05 марта 2020

Я хочу, чтобы мои RecyclerView элементы заполняли весь экран. Моя архитектура приложения следующая: у меня есть один activity хостинг с несколькими fragments, который будет подключен к / из NavHostFragment через NavController. Для простоты я опубликую соответствующие части моих макетов.

Вот часть NavHostFragment моего основного activity:

<fragment
    android:id="@+id/myNavHostFragment"
    android:name="androidx.navigation.fragment.NavHostFragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    app:defaultNavHost="true"
    app:layout_constraintBottom_toBottomOf="@id/bottom_nav_view"
    app:layout_constraintTop_toBottomOf="@+id/stream"
    app:layout_constraintVertical_weight="1"
    app:navGraph="@navigation/navigation" />

Вот схема расположения fragment содержит RecyclerView для отображения списка элементов:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>
        <variable
            name="viewModel"
            type="com.jon.mikel.home.ui.DataFragmentViewModel" />
    </data>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/data_list_recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation ="vertical"
        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:dataListData="@{viewModel.dataList}"
        />
</layout>

Наконец, вот элемент для списка RecyclerView:

<layout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>
        <variable
            name="data"
            type="com.jon.mikel.home.data.Data"/>
        <variable
            name="viewModel"
            type="com.jon.mikel.home.ui.DataFragmentViewModel" />
    </data>

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


        <TextView
            android:id="@+id/dataName"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="TextView"
            app:dataName="@{datadataName}"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

Моя проблема в том, что элементы не отображаются, как ожидалось. Каждый элемент должен заполнить весь экран. Но они заказаны в порядке wrap content, хотя я указал их как match parent для ширины и высоты.

Текущий вывод выглядит следующим образом (эскиз): enter image description here

Как я хочу (эскиз): enter image description here

Под "страницей" я, конечно, имею в виду элемент Recyclerview, но я надеюсь, что вы поняли идею. Я также надеюсь, что кто-то может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...