RecyclerView添加滑动事件的监听来处理上拉刷新
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
boolean isScrolledBottom = true;
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
int lastitem = layoutManager.findLastCompletelyVisibleItemPosition();
int allItem = layoutManager.getItemCount() - 1;
if (newState == RecyclerView.SCROLL_STATE_IDLE && (loadfinish == true) && (isLoadfinish == true)&&isScrolledBottom) {
if (lastitem == allItem) {
isLoadfinish = false;
//这里添加最后一项item也就是上拉的动画item
DesignerlistBean bean = new DesignerlistBean();
bean.setTypestyle(0);
data.add(bean);
adapter.notifyDataSetChanged();
new AsyncDataLoader(getdesign_listloadmore).execute();
}
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (dy > 0) {
isScrolledBottom = true;
} else {
isScrolledBottom = false;
}
}
});
new AsyncDataLoader(getdesign_list).execute();
}
其中loadfinish 是指当列表没有更多的数据的时候,咋们吧没有更多显示出来后就不应该继续下拉请求数据了,因为这个时候已经没有数据可以获取了。
其中isLoadfinish 是指网络请求是否访问完毕,咋们不能够一次请求还未完毕另一次接着开始,肯定要等一次请求完毕后再上拉下一次
ExpandableListView添加滑动事件的监听来处理上拉刷新
// 监听ExpandableListView滚到最底部
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
// 当不滚动时
case AbsListView.OnScrollListener.SCROLL_STATE_IDLE:
// 判断滚动到底部
if (view.getLastVisiblePosition() == (listView.getCount() - 1)&&loadfinish&&isLoadfinish) {
//TODO
isLoadfinish=false;
listView.addFooterView(footmoreview);
adapter.notifyDataSetChanged();
new AsyncDataLoader(getcollocationloadmore).execute();
ToastUtils.makeText(mContext, "滑动到底部啦!", 2);
}
break;
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
});