一句代码搞定 RecycleView 侧滑菜单、添加头部底部、加载更多

本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发。

动手打造史上最简单的 Recycleview 侧滑菜单 中,萌生了将这种方案封装为一个开源库的想法,旨在实现调用方式最简单,且又不失可定制性。本库最大的特点的是采用了 Glide 简洁明了的链式调用方式,一句代码即可添加侧滑菜单、头部底部等。

特性:

1.自定义侧滑菜单布局
2.添加头部、底部
3.轻松实现加载更多
4.设置 item 间距
5.多种 item 类型
6.支持 LinearLayout 及 GridLayout
7.一句代码实现所有功能

效果:

左侧滑菜单、右侧滑菜单、自定义菜单布局:

这里写图片描述  这里写图片描述  这里写图片描述

头部、多头部:

这里写图片描述  这里写图片描述  这里写图片描述

底部、多底部、加载更多:

这里写图片描述  这里写图片描述  这里写图片描述

集成:

第 1 步、在工程的 build.gradle 中添加:

	allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

第 2 步、在应用的 build.gradle 中添加:

	dependencies {
	        compile 'com.github.yhaolpz:SlideAdapter:1.0.1'
	}

使用:

下面通过简单案例演示如何在程序中使用 SlideAdapter,假设 item.xml 为:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:background="#fff"
    >

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="16dp"
        android:textColor="#000"
        android:textSize="14sp"
        />

</LinearLayout>

数据类为:

public class Bean {
   

    private String info;
    
    public Bean(String info) {
   
        this.info = info;
    }
    // 省略 get、set 方法...
}

数据为:

 final List<Bean> data = new ArrayList<>();
 for (int i = 0; i < 30; i++) {
   
     data.add(new Bean("我是第" + i + "个item"));
 }

1.基本写法 :

SlideAdapter.load(data)           //加载数据
            .item(R.layout.item)  //指定布局
            .into(recyclerView);  //填充到recyclerView中

2.数据绑定及事件监听:

SlideAdapter.load(data)
            .item(R.layout.item)
            .bind(itemBind)       //视图绑定
            .into(recyclerView);

在 itemBind 中进行数据绑定及控件的事件监听,相当于 Adapter 中的 onBindViewHolder ,实现 ItemBind 时需传入数据类型:

ItemBind itemBind = new ItemBind<Bean>() {
   
     @Override
     public void onBind(ItemView itemView, Bean data, int position) {
   
         itemView.setText(R.id.textView, data.getInfo()) 
                 .setOnClickListener(new View.OnClickListener() {
   
                     @Override
                     public void onClick(View view) {
   
                        //点击item
                     }
                  })
                 .setOnClickListener(R.id.textView, new View.OnClickListener() {
   
                     @Override
                     public void onClick(View view) {
   
                        //点击textView
                     }
                 });
     }
};

3.添加 item 间距:

SlideAdapter.load(data)           
            .item(R.layout.item)  
            .padding(2)           //item间距
            .bind(itemBind)       
            .into(recyclerView); 

4.添加侧滑菜单:

SlideAdapter.load(data)           
            .item(R.layout.item,00,R.layout.menu,0.35f)  //添加右侧侧滑菜单,宽为屏幕宽度的 35%  
            .padding(2)           
            .bind(itemBind)       
            .into(recyclerView); 
SlideAdapter.load(data)           
            .item(R.layout.item,R.layout.menu,0.4f00)  //添加左侧侧滑菜单,宽为屏幕宽度的 40%  
            .padding(2)           
            .bind(itemBind)       
            .into(recyclerView); 
SlideAdapter.load(data)           
            .item(R.layout.item,R.layout.menu,
  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 28
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值