RecyclerView有标题栏的分类列表 自定义列数(不同行设置不同个子项item)

这篇博文介绍如何在RecyclerView中实现带有标题的分类列表,并支持不同行设置不同数量的子项。作者提到,相比GridView,RecyclerView更适合实现此类功能,因为它允许自定义列数。文中通过代码示例展示实现方法,包括创建布局文件、适配器以及主界面的Java代码。文章提供了一个Demo,供读者下载研究。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一个的实验室Issue前几天才完成,两个项目都实现了老师要求,算上中途多次放下去做其他issue,这个issue做了差不多有四个月了吧。还好不是改bug,不然四个月时间足够被批评n次了。趁着现在还有印象,把这个issue里最难搞的问题总结一下,之前做的过程也总结了一些遇到的问题,比如后台多个定时器同事运行的问题,settings界面的注意事项等都总结了,这次总结一下花费最多时间去想的问题,中途还经过多次推倒重来,也不是说这个功能多难实现,主要是在几年前的项目上添加新功能,有些吃力,毕竟好多方法都被调用过,不能随意改变,尤其是数据封装好的类型很难去改变,想要找到一个好的方法挺难的,只能找一些折中的方法。这篇博文讲解的是我自己想的一种方法,可能不是最好的,但是适合我的项目,如果有比较好的方法,欢迎一起讨论。


有时候需要对一些数据进行分类显示,还要显示他们的分类标题,普通的GridView是挺难实现的,因为GridView不支持不同行自定义列数,例如我想标题占满一行,其他子项每两个占一行。GridView也可以实现,需要对GridView的方法做大量地重写override,重绘item等等,对一些像我这种菜鸟级别的人来说,门槛太高。后来发现可以使用RecyclerView实现这种功能,RecyclerView支持自定义不同列数。接下来介绍一下如何使用。

  1. 先看一下做的项目的效果图
    这里写图片描述

解释都写在代码里,直接看代码吧:

  • 先分别新建一个title的layout文件和一个item的layout文件
    recyclerview_title.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="标题"/>
</LinearLayout>

recyclerview_item.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/image"
    android:scaleType="fitXY"
    android:alpha="0.7"
    android:src="@drawable/ic_launcher_background"/>

<TextView
    android:id="@+id/item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值