Android - 滑动刷新中的 ListView

Android - ListView in Swipe Refresh

我实现了覆盖整个屏幕的自定义布局。在此布局中,用户可以在运行时向布局添加多个列表视图。此外,我对包含自定义布局的片段进行了滑动刷新。

问题是如果我尝试下拉列表视图,则会触发滑动刷新并且我无法在列表视图中导航。我试图通过“listView.requestDisallowInterceptTouchEvent(true);”禁止拦截,并希望如果触摸列表视图,这将防止触发滑动刷新。不幸的是,这没有成功(根本没有行为改变)。我该怎么做才能实际使用多个列表视图和滑动刷新? 问题说明:

提前致谢!

我通过添加一个子类 "ScrollableListView extends ListView" 并将 SwipeRefresh 引用传递给每个 ScrollableListView 来解决它。然后,我启用或禁用 swipeRefresh 如下:

@Override
public boolean onInterceptTouchEvent(MotionEvent ev){
        this.onTouchEvent(ev);
        return false;
    }

@Override
    public boolean onTouchEvent(MotionEvent ev){
        switch (ev.getAction()){
            case MotionEvent.ACTION_DOWN:
                analyzer.setRefreshSwipeEnabled(false);
                break;
            case MotionEvent.ACTION_UP:
                analyzer.setRefreshSwipeEnabled(true);
                break;
            case MotionEvent.ACTION_BUTTON_RELEASE:
                case MotionEvent.ACTION_CANCEL:
                    case MotionEvent.ACTION_HOVER_EXIT:
                        analyzer.setRefreshSwipeEnabled(true);
                        break;
        }
        return super.onTouchEvent(ev);
    }

"Analyzer"是我的主要activity,里面有下面的方法

/**
 * Enables or disables the swipe refresh
 * @param isEnabled
 */
public void setRefreshSwipeEnabled(boolean isEnabled){
    swipeRefresh.setEnabled(isEnabled);
}