PullToRefresh扩展为上拉加载和下拉刷新
来源:互联网 发布:东莞淘宝美工培训班 编辑:程序博客网 时间:2024/04/28 01:43
最近使用android比较火的开源项目PullToRefresh控件,遇到一些问题,
一、怎么区分上拉和下拉
我在网上找了很多资料:
方法1:在PullToRefreshAdapterViewBase类中添加
public boolean isHeaderShown() {
return getHeaderLayout().isShown();
}
public boolean isFooterShown() {
return getFooterLayout().isShown();
}
两个方法,下拉的时候头部一定会显示,上拉的时候底部一定会显示,在程序里面判断哪个显示了进而实现刷新和加载!
这个方法是可以区分上拉下拉的,但是如果你要想修改头部和底部的文字,如”下拉刷新“和”上拉加载“,你会发现,文字要回弹的时候才改变,例如:上拉过程中应该显示”上拉加载“,但你会发现此时显示的你上一次的动作
所以这个方法不推荐
详细:/blog.csdn.net/ueryueryuery/article/details/17440465
方法2:使用OnRefreshListener2接口:
重写onPullDownToRefresh和onPullUpToRefresh方法,可以区分上拉下拉,但是有和方法一一样的问题,所以不推荐
方法3:使用滑动监听,在onScrollStateChanged
判断当前显示条目和首个显示条目的关系,如果当前显示大于首个显示条目则为上拉,反正则以
int
mLastFirstVisibleItem =
0
;
boolean
mIsScrollingUp;
@Override
public
void
onScrollStateChanged(AbsListView view,
int
scrollState)
{
if
(view.getId() == mListView.getId())
{
final
int
currentFirstVisibleItem = mListView.getFirstVisiblePosition();
if
(currentFirstVisibleItem > mLastFirstVisibleItem)
{
mIsUp =
true
;
}
else
if
(currentFirstVisibleItem < mLastFirstVisibleItem)
{
mIsUp =
false
;
}
mLastFirstVisibleItem = currentFirstVisibleItem;
}
}
参考资料:http://stackoverflow.com/questions/12114963/detecting-the-scrolling-direction-in-the-adapter-up-down/12115157#12115157
这个方法也是早就有人写出来了,我只是搬运工而已,在使用这个方法的时候的遇到一些问题:
1、mLion
stView没有getFirstVisiblePosition(),解决方法ListView mlistview =mListView
.getRefreshableView();
2、ScrollStateChanged
方法不执行,解决此方法
,ListView
的高度要比所有item高度之和下才会执行此方法
详细:http://glblong.blog.51cto.com/3058613/1312349/
二、PullToRefreshListView没有长按事件
解决方法 :ListView mlistview =mListView
.getRefreshableView();
mlistview.setOnItemLongClickListener
- PullToRefresh扩展为上拉加载和下拉刷新
- PullToRefresh下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh区分下拉刷新和上拉加载
- PullToRefresh实现下拉刷新和上拉加载
- PullToRefresh实现下拉刷新和上拉加载
- PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- 使用PullToRefresh实现下拉刷新和上拉加载
- cocos2d-x 3.2 之 2048 —— 第三篇
- 关于怎么MyEclipse IDE怎么查看java servlet源代码?
- 走进小作坊(十六)----口碑营销
- string查找
- 动态内存管理new&delete
- PullToRefresh扩展为上拉加载和下拉刷新
- Apriori Algorithm介绍及Python实现
- 水樹 奈々 Blog 20140922 これまでにない緊張感っ!译文
- 【BZOJ】【P1102】【POI2007】【山峰和山谷Grz】【题解】【Flood Fill】
- CRC32、MD5、SHA1算法校验介绍
- C语言_标准库中的流函数
- NYOJ 题目37 回文字符串(动态规划)
- .net signalR 实例
- Fibonacci函数递归实现