解決SwipeRefreshLayout與ScrollView滑動衝突
阿新 • • 發佈:2018-12-12
在頁面為了相容小螢幕裝置我們需要巢狀一個ScrollView來讓我們的佈局可以滑動,此時恰好外層使用了SwipeRefreshLayout那滑動衝突就來了,下面給出解決辦法
1.方法一:使用NestedScrollView替換ScrollView
<android.support.v4.widget.NestedScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="wrap_content" //跟ScrollView一樣只能接受一個直接的子view ..... </android.support.v4.widget.NestedScrollView>
2.方法二:先將ScrollView 向上滑動一部分,然後鬆手.然後再向下滑動,此時應該是先觸發滑動事件,當ScrollView到頂部以後才觸發重新整理時間.但是此時會出現先觸發swipeRefreshLayout的問題。
scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { @Override public void onScrollChanged() { swipeRefreshLayout.setEnabled(scrollView.getScrollY()==0); } });