android – SwipeRefreshLayout和刷新状态

我正在努力使用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正是刷新后我必须要做的!

文档是错误的还是我看错了?
文件不应该说:“当刷卡手势触发刷新时,不要将刷新状态调用为真”

你怎么看?

最佳答案
当您从上到下滑动Swip​​eRefreshLayout时,会自动触发setRefreshing(true).所以你不需要重复调​​用setRefreshing(true).同时,如果您调用setRefreshing(true)但不刷扫SwipeRefreshLayout,则当您滑动Swip​​eRefreshLayout时,您将看到相同的场景.无论你是调用setRefreshing(true)还是从上到下滑动Swip​​eRefreshLayout,你都需要在完成任务后调用setRefreshing(false).就像您在上面的代码段中所做的那样.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...