DJ-*_*DOO 5 android swiperefreshlayout
我已经为我的网格视图实现了一个刷卡刷新布局,如果我向下拉(滚动)以调用刷新,它就可以正常工作.
但是,我试图弄清楚当用户向上滚动时如何刷新.因此,当用户到达网格中的最后一个项目时(我的限制为10),所以当用户看到全部十个然后向上拉或尝试继续滚动时,我该如何刷新?
任何帮助表示赞赏.
所以人们要么:不知道这个问题的答案,要么b:他们不愿意分享知识.
无论如何,经过很长一段时间我想出了自己的解决方案.我在网格中添加了一个滚动监听器,并在滚动到屏幕底部时进行计算,此时我从刷卡中重新调用onRefresh()方法进行刷新...
编辑 以添加更多信息
所以,我做了一些研究之后,计算当用户达到网格视图的底部我也跟着这样的问题这和其他人获取.下面是我必须更改的代码,以便它可以使用本机刷新功能.我的改动是为了防止不断刷新.所以我的if语句中包含的是检查它当前不是刷新的,所以当我到达底部时它刷新了,但是我没有那个检查所以它不断刷新.然后,我必须检查我的网格中的项目总数,因为当用户到达最后一项(最后一项)时,应用程序也保持刷新,没有什么可以打破循环.希望这有一些帮助......
worldBeersGrid.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView absListView, int i) {
}
@Override
public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
int position = firstVisibleItem+visibleItemCount;
int limit = totalItemCount;
int totalItems = sharedpreferences.getInt("WORLD ITEM COUNT", 0);
Log.i("TOTAL WORLD ITEMS", String.valueOf(totalItems));
Log.i("LIMIT :::::::::::: ", String.valueOf(limit));
Log.i("POSITION ::::::::::::", String.valueOf(position));
Log.i("REFRESHING :::::::::::::::", String.valueOf(swipeRefreshLayout.isRefreshing()));
if(position>=limit && totalItemCount>0 && !swipeRefreshLayout.isRefreshing() && position <totalItems){
swipeRefreshLayout.setRefreshing(true);
//In the below method I made my call to my ws...
onRefresh();
}
}
});
Run Code Online (Sandbox Code Playgroud)
在stackoverflow中查看我的答案
Android支持库版本21中的SwipeRefreshLayout不支持从底部提取.我已经基于原始的SwipeRefreshLayout代码修改了SwipeRefreshLayoutBottom.它完全基于原始的Google代码,只有坐标反转和新写入的canChildScrollDown方法.所有修改都标记为TODO.
| 归档时间: |
|
| 查看次数: |
15307 次 |
| 最近记录: |