我正在努力使用Google支持库的SwipeRefreshLayout中的文档.
当我使用setonRefreshListener设置的回调接收刷新调用时,我做了我的操作,之后,我发现我需要再次将刷新状态设置为false – 如果我不这样做,我再也不能通过刷卡触发它!
mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);
if (mSwipeRefreshLayout != null) {
mSwipeRefreshLayout.setonRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
Toast.makeText(getApplication(),"Refreshing!",Toast.LENGTH_SHORT).show();
//requestDataRefresh();
mSwipeRefreshLayout.setRefreshing(false);
}
});
}
到现在为止还挺好.但是看看setRefreshing的文档:
/**
* Notify the widget that refresh state has changed. Do not call this when
* refresh is triggered by a swipe gesture.
*
* @param refreshing Whether or not the view should show refresh progress.
*/
public void setRefreshing(boolean refreshing) {...
但是再次将刷新状态设置为false正是刷新后我必须要做的!
文档是错误的还是我看错了?
该文件不应该说:“当刷卡手势触发刷新时,不要将刷新状态调用为真”
你怎么看?
最佳答案
当您从上到下滑动SwipeRefreshLayout时,会自动触发setRefreshing(true).所以你不需要重复调用setRefreshing(true).同时,如果您调用setRefreshing(true)但不刷扫SwipeRefreshLayout,则当您滑动SwipeRefreshLayout时,您将看到相同的场景.无论你是调用setRefreshing(true)还是从上到下滑动SwipeRefreshLayout,你都需要在完成任务后调用setRefreshing(false).就像您在上面的代码段中所做的那样.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。