swiperefreshlayout與scrollview的衝突

原文轉載自:http://blog.csdn.net/qq_16628781/article/details/52025366
解決swiperefreshlayout與scrollview的衝突問題。
在開發中,我們會用到新的控件swipeRefreshLayout,但是我們同時又要用到scrollView。我們知道swipeRefreshLayout和scrollView這兩個控件的子控件都必須有且只有一個的,而且這兩個控件都會檢測用戶滑動的動作,由於事件的分派的問題,就出現了我們所遇到的衝突問題。
下面是我實踐過,可行的解決兩者共用所產生的滾動衝突問題。
原理很簡單:就是在scrollview還沒有到達第一條數據頂部的時候,就設置swipeRefreshLayout爲不可操作狀態,那麼檢測swipeRefreshLayout的滾動分發就不起作用了,就達到我們需要的目的了。

   if (myScroll != null) {
            myScroll.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
                @Override
                public void onScrollChanged() {
                    if (me_swipe != null) {
                        me_swipe.setEnabled(myScroll.getScrollY() == 0);
                    }
                }
            });
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章