SwipeRefreshLayout
1.解决和ListView冲突问题
lvOrder.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
lastItem = firstVisibleItem + visibleItemCount;
totalItem = totalItemCount;
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (totalItem == lastItem && scrollState == SCROLL_STATE_IDLE) {
// 滚动到底部
}
//判断ListView是否滑动到第一个Item的顶部
if (lvOrder.getChildCount() > 0 && lvOrder.getFirstVisiblePosition() == 0
&& lvOrder.getChildAt(0).getTop() >= lvOrder.getPaddingTop()) {
//解决滑动冲突,当滑动到第一个item,下拉刷新才起作用
srlRefresh.setEnabled(true);
} else {
srlRefresh.setEnabled(false);
}
}
}); 2:解决和ScrollView冲突问题 svScroll.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() { @Override public void onScrollChanged() { if (srlRefresh != null) { srlRefresh.setEnabled(svScroll.getScrollY() == 0); } } });