RecyclerView配合SwipeRefreshLayout实现下拉刷新以及实现上拉加载更多
2016-04-25 14:32
525 查看
下拉刷新
采用 android.support.v4.widget.SwipeRefreshLayout 来实现
具体可以搜索这个class,我们按照官方文档,布局如下
然后对
文/BlackSwift(简书作者)
原文链接:http://www.jianshu.com/p/4feb0c16d1b5
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
上拉加载更多
加载更多很简单,监听一下OnScrollListener,以横向滑动为例
参考:http://www.denghaojie.cn/android-recyclerview-load-more-672.html
采用 android.support.v4.widget.SwipeRefreshLayout 来实现
具体可以搜索这个class,我们按照官方文档,布局如下
<view xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swipeRefreshLayout" class="android.support.v4.widget.SwipeRefreshLayout" android:layout_width="match_parent" android:layout_height="match_parent"> <view xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/recylerView" class="android.support.v7.widget.RecyclerView" android:layout_width="wrap_content" android:layout_height="wrap_content"></view> </view>
然后对
swipeRefreshLayout设置监听即可
swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { if(isrefreshing){ Log.d(TAG,"ignore manually update!"); } else{ loadPage(); } } });
文/BlackSwift(简书作者)
原文链接:http://www.jianshu.com/p/4feb0c16d1b5
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
上拉加载更多
加载更多很简单,监听一下OnScrollListener,以横向滑动为例
mRecycleView.setOnScrollListener(new RecyclerView.OnScrollListener(){ //用来标记是否正在向最后一个滑动,既是否向右滑动或向下滑动 boolean isSlidingToLast = false; @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { LinearLayoutManager manager = (LinearLayoutManager)recyclerView.getLayoutManager(); // 当不滚动时 if (newState == RecyclerView.SCROLL_STATE_IDLE) { //获取最后一个完全显示的ItemPosition int lastVisibleItem = manager.findLastCompletelyVisibleItemPosition(); int totalItemCount = manager.getItemCount(); // 判断是否滚动到底部,并且是向右滚动 if (lastVisibleItem == (totalItemCount -1) && isSlidingToLast) { //加载更多功能的代码 Ln.e("howes right="+manager.findLastCompletelyVisibleItemPosition()); Toast.makeText(getActivityContext(),"加载更多",0).show(); } } } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); //dx用来判断横向滑动方向,dy用来判断纵向滑动方向 if(dx > 0){ //大于0表示,正在向右滚动 isSlidingToLast = true; }else{ //小于等于0 表示停止或向左滚动 isSlidingToLast = false; } } });
参考:http://www.denghaojie.cn/android-recyclerview-load-more-672.html
相关文章推荐
- Eclipse插件SVN配置
- Eclipse插件SVN配置
- node.js---sails项目开发(1)
- Java设计模式系列之观察者模式
- img test
- iOS自学-UILabel常见属性
- 【iCore3 双核心板_ uC/OS-III】例程四:时间管理
- 第9章 服务器Socket
- VR 第四篇
- Single Image Haze Removal(图像去雾)-CVPR’09 Best Paper
- java网络编程之UDP通讯
- js的一个有意思的小题,闭包解决getElementByTagName的for循环绑定事件错误问题
- 推荐算法比较
- 该怎么在EDIUS中制作图片慢慢放大的特效
- vmware 中linux虚拟机动态添加硬盘
- 360度舵机和180度舵机控制方法小结
- 机器学习常见网站
- VR 第三篇
- VS2010 调试错误列表
- 《Motion Design for iOS》(一)