Android滑动刷新bug

Android Swipe to refresh bug

我用RecyclerView成功实现了滑动刷新功能,效果很好。

代码如下:

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    mSwipeRefreshLayout = (SwipyRefreshLayout) view.findViewById(getRefreshLayoutId());
    mSwipeRefreshLayout.setOnRefreshListener(new SwipyRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh(SwipyRefreshLayoutDirection swipyRefreshLayoutDirection) {
            doRefreshTask();
        }
    });
}

protected void onRefreshComplete() {
    mSwipeRefreshLayout.setRefreshing(false);
    completeRefresh();
}

这里是 XML:

<android.support.v4.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swipe_refresh_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.v7.widget.RecyclerView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/list_recycler"
        android:scrollbars="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v7.widget.RecyclerView>
</android.support.v4.widget.SwipeRefreshLayout>

但是,如果我拉下刷新按钮并释放,同时(在触发 onRefreshListener 之前)我再次拉下,然后刷新按钮停在屏幕中间,什么都不做。

有谁知道如何解决这个问题? Gmail 可以以某种方式禁用 "malicious" 下拉操作。

我使用的库:'com.android.support:design:23.0.1'

我注意到这是支持设计库23.0.1的一个bug,回滚到22.2.1版本不会有这个问题。