如何在 Android 中根据布局大小调整 Recyler 视图项目

问题描述 投票:0回答:1

我正在使用回收器在列表中显示 8 个项目。但是数字 8 是固定的。 我想根据给出回收器视图的父布局的大小调整项目的大小。 这意味着所有 8 个项目应该以相同的大小显示,并且应该适合一个屏幕视图。无需滚动。

我已附上供参考的图像。

我的问题是我怎样才能做到这一点?

android android-recyclerview android-viewholder
1个回答
1
投票

这也许可以作为您的参考,您可以使用

RecyclerView
GridLayoutManager
作为您的
layoutManager
并将您的
spanCount
设置为 8 以制作包含 8 个项目的网格

<?xml version="1.0" encoding="utf-8"?>
<androidx.recyclerview.widget.RecyclerView 
    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"
    app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
    app:spanCount="8"
    tools:listitem="@layout/item_recycler"
    tools:itemCount="8"/>

在您的项目视图中,只需确保布局中的所有内容都与父级匹配

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_margin="4dp"
        android:background="@color/black"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintDimensionRatio="1:1"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

这是项目布局的结果

这是您预期的结果,您还可以使用

Layout Validation
验证您的视图,以确保它在您想要的任何尺寸的设备中都是预期的

© www.soinside.com 2019 - 2024. All rights reserved.