Неправильное выравнивание меню ресайклера

#android

Вопрос:

RecyclerLayout.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent"
    android:background="#FF00FF">  

   <androidx.recyclerview.widget.RecyclerView
        android:id="@ id/Recyclergrid"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        app:cardBackgroundColor="@color/app_background"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toBottomOf="@id/Boxlayout" />
<LinearLayout >
 

CardLayout.xml

 <androidx.constraintlayout.widget.ConstraintLayout 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="wrap_content"
    android:layout_height="wrap_content"
    android:clipToPadding="false"
    android:layout_gravity="center"
    android:foreground="?selectableItemBackgroundBorderless"
    android:layout_marginBottom="20dp"
    android:id="@ id/root">

    <androidx.cardview.widget.CardView
        android:id="@ id/CardLayout"
        android:layout_width="100dp"
        android:layout_height="150dp"
        app:cardCornerRadius="4dp"
        app:cardElevation="0dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toTopOf="@id/TextView"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <androidx.appcompat.widget.AppCompatImageView
            android:id="@ id/idIVcourseIV"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop" />
    </androidx.cardview.widget.CardView>

    <TextView
        android:id="@ id/TextView"
        android:layout_width="0dp"
        android:fontFamily="sans-serif"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:minLines="2"
        android:maxLines="2"
        android:layout_marginTop="4dp"
        android:textColor="#FFFFFF"  
        app:layout_constraintEnd_toEndOf="parent" 
        app:layout_constraintStart_toStartOf="parent" />



</androidx.constraintlayout.widget.ConstraintLayout>
 

Код java, который я использую, это

 Rcv= findViewById(R.id.Recyclergrid ); 
CardArray= new ArrayList<>();  
CardArray.add(new DataModel("Text" ,"Title"));
RecyclerAdapter RcvAdapter= new RecyclerAdapter(this, CardArray)
Rcv.setLayoutManager(new GridLayoutManager(this, 3));
Rcv.setAdapter(RcvAdapter); 
 

Результат, который я получаю, таков
https://i.stack.imgur.com/utWhA.jpg

Я попытался добавить gravity=»центр» в recycleview, но это все равно не сработало, я сделал обходной путь, добавив отступ в представление карты и центрируя представление переработчика. Есть ли правильный способ исправить это

Ответ №1:

Прежде Всего, Не Используйте фиксированные поля.

Используйте android:гравитация = «центр» в главном макете вашего RecyclerView.

Или Получить Надлежащую Помощь. Здесь вы можете использовать макет сетки для отображения ваших данных в приложении с соответствующими полями.

следуйте этому и установите в приложении. https://developer.android.com/reference/android/widget/GridLayout

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

1. Компоновка сетки устарела. Несмотря на то, что он не устарел, его не рекомендуется использовать.