解决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
}