推荐一个简洁的下拉刷新组件

组件介绍

一个极简的组件,核心代码只是一个自定义View,代码不超过500行,是一个学习事件分发和View滚动机制的不错选择。虽然代码比较少,但却提供了完整功能。

特点

  • 同时支持下拉刷新和上拉加载;
  • 支持触底自动加载;
  • 支持常用View;
  • 支持自定义头部和底部布局;

描述

  1. 该组件对所有View提供了下拉和上拉加载功能,具体使用哪种模式可通过设置mode属性来实现:

     // 下拉刷新和上拉加载都不可用
     MODE_DISABLE(0),
     
     // 只可下拉刷新
     MODE_REFRESH(1),
     
     // 只可上拉加载
     MODE_LOAD_MORE(2),
     
     // 同时支持下拉刷新和上拉加载
     MODE_BOTH(3);
    复制代码
  2. 对AbsListView(如ListView, GridView)和RecycleView提供了触底加载机制,通过设置mSupportedTouchBottomLoad来实现开启,默认为开启状态;

  3. 通过示例代码对ListView, GridView, ScrollView, WebView, RecycleView, ViewPager, TextView进行了测试,都可正常工作;

  4. 该组件提供了自定义头部和底部布局的功能,既可通过设置监听来实现,也可通过重写RefreshLayout来实现统一风格的刷新组件。

    refreshLayout.setOnRefreshListener(new RefreshLayout.OnRefreshListener() { @Override public void onRefresh(View headerView) { // 设置刷新中的布局样式 }

     @Override
     public void onLoad(View footerView) {
     	// 设置加载更多时的布局样式
     }
    复制代码

    });

通过重写RefreshLayout中的几个方法实现统一样式的刷新组件:

public class MyRefreshLayout extends RefreshLayout {

	public MyRefreshLayout(Context context) {
		super(context);
	}

	public MyRefreshLayout(Context context, @Nullable AttributeSet attrs) {
		super(context, attrs);
	}

	public MyRefreshLayout(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
		super(context, attrs, defStyleAttr);
	}

	@Override
	protected void addHeaderViewAndFooterView() {
		mHeaderView = View.inflate(getContext(), R.layout.item_my_header_layout, null);
		mFooterView = View.inflate(getContext(), R.layout.item_my_footer_layout, null);
		addView(mHeaderView, 0);
		addView(mFooterView, getChildCount());
	}

	@Override
	protected void showRefreshingLayout() {
		
	}

	@Override
	protected void showLoadingLayout() {
		
	}

	@Override
	protected void refreshingComplete() {
		
	}

	@Override
	protected void loadingComplete() {
		
	}

	@Override
	protected void resetRefreshLayout() {
		
	}

	@Override
	protected void resetLoadMoreLayout() {
		
	}
}
复制代码

源码地址:

SimpleRefresh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值