Android 封装好的控件完美支持RecyclerView下拉刷新和上拉加载

支持下拉刷新和上拉加载的RefreshLayout,自带越界回弹效果,支持RecyclerView,AbsListView,ScrollView,WebView
 
 
 
Google官方推出了SwipeRefreshLayout和RecyclerView的共同使用,,为我们提供了更加便捷的列表下拉刷新功能,但是,并没有给我们提供上拉加载功能
 
第三方控制
 
基于第三方控件TwinklingRefreshLayout
 
第一种方式:嵌套
<span style="color:#000000"><span style="color:#cccccc"><span style="color:#404040"><code class="language-bash">compile 'com.lcodecorex:tkrefreshlayout:1.0.7'</code></span></span></span>
 
<span style="color:#000000"><span style="color:#cccccc"><span style="color:#404040"><code class="language-xml"><span style="color:#999999"><?xml version="1.0" encoding="utf-8"?></span>
<span style="color:#e2777a"><span style="color:#cccccc"><</span>com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout xmlns:android<span style="color:#7ec699"><span style="color:#cccccc">=</span><span style="color:#cccccc">"</span>http://schemas.android.com/apk/res/android<span style="color:#cccccc">"</span></span>
    xmlns:app<span style="color:#7ec699"><span style="color:#cccccc">=</span><span style="color:#cccccc">"</span>http://schemas.android.com/apk/res-auto<span style="color:#cccccc">"</span></span>
    android:id<span style="color:#7ec699"><span style="color:#cccccc">=</span><span style="color:#cccccc">"</span>@+id/refreshLayout<span style="color:#cccccc">"</span></span>
    android:layout_width<span style="color:#7ec699"><span style="color:#cccccc">=</span><span style="color:#cccccc">"</span>match_parent<span style="color:#cccccc">"</span></span>
    android:layout_height<span style="color:#7ec699"><span style="color:#cccccc">=</span><span style="color:#cccccc">"</span>match_parent<span style="color:#cccccc">"</span></span>
    app:tr_head_height<span style="color:#7ec699"><span style="color:#cccccc">=</span><span style="color:#cccccc">"</span>100dp<span style="color:#cccccc">"</span></span><span style="color:#cccccc">></span></span>

    <span style="color:#e2777a"><span style="color:#cccccc"><</span>android.support.v7.widget.RecyclerView
        android:id<span style="color:#7ec699"><span style="color:#cccccc">=</span><span style="color:#cccccc">"</span>@+id/recyclerview<span style="color:#cccccc">"</span></span>
        android:layout_width<span style="color:#7ec699"><span style="color:#cccccc">=</span><span style="color:#cccccc">"</span>match_parent<span style="color:#cccccc">"</span></span>
        android:layout_height<span style="color:#7ec699"><span style="color:#cccccc">=</span><span style="color:#cccccc">"</span>match_parent<span style="color:#cccccc">"</span></span>
        android:overScrollMode<span style="color:#7ec699"><span style="color:#cccccc">=</span><span style="color:#cccccc">"</span>never<span style="color:#cccccc">"</span></span>
        android:background<span style="color:#7ec699"><span style="color:#cccccc">=</span><span style="color:#cccccc">"</span>#fff<span style="color:#cccccc">"</span></span> <span style="color:#cccccc">/></span></span>
<span style="color:#e2777a"><span style="color:#cccccc"></</span>com.lcodecore.library.TwinklingRefreshLayout<span style="color:#cccccc">></span></span></code></span></span></span>

使用finishRefreshing()方法结束刷新,finishLoadmore()方法结束加载更多。此处OnRefreshListener还有其它方法,可以选择需要的来重写。

如果你想进入到界面的时候主动调用下刷新,可以调用startRefresh()/startLoadmore()方法。(会自动执行RefreshListenerAdapter监听事件中的onRefresh()/onLoadMore())

 
第二种方式:
 
 
方便实现个性化的 Header 和 Footer
 
 
框架重写需要考虑的问题
1.是否支持下拉
2.是否支持上拉
3.自定义Header
4.自定义Footer
5.自定义动画
 
 
原理介绍:
使用RecyclerView.OnScrollListener滚动的监听器来监听RecyclerView是否滑动到了底部,这样我们就可以执行添加底部动画的操作。
 
边界条件

根据原理我们能够知道,做一个下拉刷新的动画加载,我们需要做的有两个动作:

1.如何判断RecyclerView已经滑动到底部。

2.如何添加RecyclerView的底部动画。

 

重要的就是RecyclerView滚动监听

 RecyclerView.OnScrollListener 

mRecyclerView.canScrollVertically(1) 是否拉到底部

 
 
 
 
 
下拉刷新的主要类:
1.RefreshLoadMoreRecyclerView
2.TwinklingRefreshLayout
3.MainFootView
4.MainHeadView
 

4.一些属性的介绍

setWaveHeight、setHeaderHeight、setBottomHeight、setOverScrollHeight

setWaveHeight 设置头部可拉伸的最大高度。
setHeaderHeight 头部固定高度(在此高度上显示刷新状态)
setBottomHeight 底部高度
setOverScrollHeight 设置最大的越界高度

setEnableRefresh、setEnableLoadmore

灵活的设置是否禁用上下拉。

setHeaderView(IHeaderView headerView)、setBottomView(IBottomView bottomView)

设置头部/底部个性化刷新效果,头部需要实现IHeaderView,底部需要实现IBottomView。

setEnableOverScroll

是否允许越界回弹。

 
问题:
RecycleView是不是要搭配adapter一起?
不需要,recycleView和第三方的adataper是分开的,2个独立的控件
 
 
不能滑动都问题
解决办法:
0.先建一个项目,把悦动健身的recycleview拷贝进去
1.测试悦动圈的recycleview是否有用,然后 把其他的都改了=====不行
发现头部和尾部,2者都不一样了
先头部
后尾部
2.把悦动圈的这个提前到2018年的时候
3.读懂原理,然后修改
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值