Как центрировать элементы Grid RecyclerView?

#android #xml #kotlin

#Android #xml #kotlin

Вопрос:

У меня есть представление recycler с помощью диспетчера компоновки сетки. Я сделал свой вид элемента, чтобы иметь значение witdh = match_parent, чтобы мои элементы имели одинаковую ширину в зависимости от ширины экрана. Но есть также ограничение, которое является максимальной шириной для моего представления элемента. Итак, если количество пролетов мало, все мои элементы выровнены по левому краю, но я хочу, чтобы эти элементы были выровнены по центру.

Примеры: 1

В случае 1 все в порядке. В случае 2 элементы не центрированы. PS Я пробовал layout_gravity = center, gravity = center, это не помогает

Комментарии:

1. Попробуйте изменить столбец в GridLayoutManager с 5 на 3

2. я динамически изменяю количество пролетов

3. Вы хотите, чтобы ваши просмотры были помещены в центр или распределены равномерно, чтобы заполнить всю ширину экрана?

4. Пожалуйста, добавьте свой xml и инициализируйте свой RecyclerView

Ответ №1:

Попробуйте это.

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center" >

    <androidx.recyclerview.widget.RecyclerView
        android:id="@ id/question_recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#f0f4fd" 
        android:layout_gravity="center"
        android:layout_centerInParent="true"/>

</RelativeLayout>
 

Комментарии:

1. Я лично использовал это, поместив ваш вид recycler в макет, а затем сделайте его центральным,

Ответ №2:

В XML-файле строки необходимо выровнять элементы по центру

Ответ №3:

В макете элемента не используйте wrap_content или фиксированный размер layout_width . Вы должны использовать match_parent as layout_width .