RecycleView添加header和footer

本文介绍了在Android开发中如何在RecycleView中添加header和footer,特别是在使用GridLayoutManager时的注意事项。通过创建包裹器并实现addFooter方法来解决这一问题。还提到了在使用xrecycleview时可能会遇到的位置错误,建议使用原生RecycleView以避免此类问题。此外,文章讨论了SparseArrayCompat的使用,它是HashMap的一个轻量级替代,适用于key为Integer、value为object的情况,能节省大约50%的缓存。
摘要由CSDN通过智能技术生成

最近开发,有个需求,网格布局的地步,需要添加底部footer,展示隐私权政策,本以为像listview一样很容易的add就好了,结果recycleview并没有这样的功能。项目中基本的recycleview并不能满足刷新和加载更多的操作,所以一直使用的是xrecycleview。奈何xrecycleview中只有addHead方法,项目中所需要的addfooter,并没有实现。所以仿照xrecycleview中的addhead方法,创建一个包裹器,添加addfooter方法。代码如下

/**
 * Describe:
 * <p>
 * Author: zhuxuanmuyu
 * Date: 2020/6/28
 * Email: lxm20819@sina.com
 */
public class RechargeWrapperAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

    public static final int BASE_ITEM_TYPE_HEADER = 100000;
    public static final int BASE_ITEM_TYPE_FOOTER = 200000;
    private SparseArrayCompat<View> mHeaderViews = new SparseArrayCompat<>();
    private SparseArrayCompat<View> mFooterViews = new SparseArrayCompat<>();

    private RecyclerView.Adapter mInnerAdapter;

    public RechargeWrapperAdapter(RecyclerView.Adapter innerAdapter) {
        mInnerAdapter = innerAdapter;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if (mHeaderViews.get(viewType) != null) {
            return new MyViewHolder(mHeaderViews.get(viewType));
        } else
            if (mFooterViews.get(viewType) != null) {
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值