解決SwipeRefreshLayout 和ListView、 ExplandListView、 GirdView等AbsListView下拉沖突?
本人遇到的問題是:SwipeRefreshLayout 中放了一個LinearLayout ,LinearLayout中才放的ExpandableListView,導致刷新的時候列表下拉不下來,該問題的原因就在于,ExpandableListView的外邊又套了一層LinearLayout,
而當SwipeRefreshLayout中的直接子類 不是AbsListView等時,這時沖突就出現了,解決的辦法如下
public void ? ?onScroll(AbsListView listView, intfirstVisibleItem, intvisibleItemCount, inttotalItemCount) { ? ? ? ? ??
? ? ? ? ? ? boolean enable = false;
? ? ? ? ? ? ? if (listView != null && listView.getChildCount() > 0) {
? ? ? ? ? ? ? ? ? ?boolean firstItemVisible = listView.getFirstVisiblePosition() == 0;
? ? ? ? ? ? ? ? ? ? boolean topOfFirstItemVisible = listView.getChildAt(0).getTop() == 0;
? ? ? ? ? ? ? ? ? ? enable = firstItemVisible && topOfFirstItemVisible;
? ? ? ? ? ? ? ? }
? ? ? ? mSwipeRefreshLayout.setEnabled(enable);//通過滾動時動態判斷是達到頂部來屏蔽SwipeRefreshLayout
}