pullToRefresh集成SwipeMenuListview,RecyclerView
来源:互联网 发布:dota2 数据bld是什么 编辑:程序博客网 时间:2024/06/06 04:03
Andorid-PullToRefresh大家应该都非常的熟悉,是一个下拉刷新,上拉加载的控件。功能也是非常的强大,我们可以自定义各种动画。
SwipeMenuListview也是非常的常用,可以为你的listview添加侧滑菜单,功能也是很完善。
很多新人想使用侧滑和下拉刷新,上拉加载的时候会不知道怎么实现。其实把这两个控件集成一下也是很方便的。
首先我们来看看PullTorefreshListview,PullTorefreshScrollview ,PullTorefreshGridView.我们发现它们都继承了PullToRefreshBase,并且实现了getPullToRefreshScrollDirection,createRefreshableView,isReadyForPullEnd,isReadyForPullStart这四个方法。所以我们也可以自定义一个 PullToRefreshSwipeMenuListview,继承PullToRefreshBase,在getPullToRefreshScrollDirection方法中我们指定方向为竖向:
@Override public Orientation getPullToRefreshScrollDirection() { return Orientation.VERTICAL; }
然后在createRefreshableView方法中:
@Override protected SwipeMenuListView createRefreshableView(Context context, AttributeSet attrs) { listView = new SwipeMenuListView(context, attrs); return listView; }
我们new出一个SwipeMenuListView对象return就ok了。
还有两个方法isReadyForPullStart和isReadyForPullEnd。我们只要判断listview是否到达顶部或者底部就可以了。
@Override protected boolean isReadyForPullStart() { if(listView.getAdapter() == null || listView.getAdapter().getCount()==0){ return true; } if (listView.getFirstVisiblePosition() == 0) { if (listView.getChildAt(0).getTop() >= getRefreshableView().getTop()) { return true; } } return false; }
@Override protected boolean isReadyForPullEnd() { if(listView.getAdapter() == null || listView.getAdapter().getCount()==0){ return true; } int lastPos = listView.getAdapter().getCount() - 1; if (listView.getLastVisiblePosition() == lastPos) { int i = listView.getAdapter().getCount() - ((SwipeMenuListView) getRefreshableView()).getChildCount(); if (listView.getChildAt(lastPos - i).getBottom() <= getRefreshableView().getBottom()) { return true; } } return false; }
这样简单就实现了侧滑 上拉下拉兼具的控件。你也可以根据这个自定义一个可以下拉上拉的Recyclerview,Recyclerview判断顶部item和底部item是否完全显示提供了非常好的方法。不需要自己去计算。
Recyclerview.getLayoutManager 有以下两个方法。
findFirstCompletelyVisibleItemPosition和findLastCompletelyVisibleItemPosition。
ps:欢迎加我的新手群:android入门学习 145186993。
- pullToRefresh集成SwipeMenuListview,RecyclerView
- Android 集成了RecyclerView 刷新加载,及侧滑菜单的 PullToRefresh
- SwipeMenuListView
- Swipemenulistview
- swipemenulistview
- Swipemenulistview
- SwipeMenuListView
- android-PullToRefresh集成使用心得
- Android PullToRefresh 分析之四、扩展RecyclerView
- Android PullToRefresh 分析之四、扩展RecyclerView
- AndroidStudio导入PullToRefresh—RecyclerView-Extention
- Android PullToRefresh 分析之扩展RecyclerView
- Android PullToRefresh 分析之四、扩展RecyclerView
- Android仿qq下拉刷新及向左滑动列表----PullToRefresh, SwipeMenuListView开源项目整合
- Android仿qq下拉刷新及向左滑动列表----PullToRefresh, SwipeMenuListView开源项目整合
- Android仿qq下拉刷新及向左滑动列表----PullToRefresh, SwipeMenuListView开源项目整合
- 自定义PulltoRefresh刷新的样式 以及集成PulltoRefresh
- android中的几个GitHub的应用,一个半圆弧形进度条,一个侧拉SwipeMenuListView,下拉刷新上拉加载PullToRefresh
- View的绘制过程
- Initialization error Oracle Client not properly installed
- C++字符串转数字,数字转字符串
- DBFlow for eclipse 移植
- Win10安装iis建议
- pullToRefresh集成SwipeMenuListview,RecyclerView
- CentOS7.0 - 修改系统语言
- 递归算法 Java实现
- 如何退出Activity?如何安全退出已调用多个Activity的Application?
- [Android]static变量的生命周期
- 读书笔记——思想(01)一切都是对象
- Edittext设置光标颜色
- MySQL权限篇之DROP
- HDU 1009 FatMouse' Trade (模拟)