解決ScrollView和SwipeRefreshLayout滑動時的沖突

前言

最近在學習的過程中,遇到了一個問題:需要ScrollView滑動顯示信息,但同時有需要使用SwipeRefreshLayout實現下拉刷新,這兩個控件都會檢測用戶滑動的動作,由于事件的分派的問題,這個時候就會發生沖突。

解決原理

在ScrollView還沒有到達第一條數據頂部的時候,就設置SwipeRefreshLayout為不可操作狀態,那么檢測SwipeRefreshLayout的滾動分發就不起作用了

解決方案

if (scrollView != null) {
            scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
                @Override
                public void onScrollChanged() {
                    if (swipeRefreshLayout != null) {
                        swipeRefreshLayout.setEnabled(scrollView.getScrollY() == 0);
                    }
                }
            });
        }
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容