ListView加载更多的最简单实现方式
2016-08-26 16:44
204 查看
public class RefreshListView extends ListView implements AbsListView.OnScrollListener { public RefreshListView(Context context) { this(context,null); } public RefreshListView(Context context, AttributeSet attrs) { super(context, attrs); this.setOnScrollListener(this); TextView textView = new TextView(context); textView.setGravity(Gravity.CENTER); textView.setHeight(DensityUtils.dp2px(context,50)); textView.setText("加载更多中..."); this.addFooterView(textView); } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } RefreshingCallback loadMore; booleanisLoadingMore = false; public void setLoadMore(RefreshingCallback loadMore){ this.loadMore = loadMore; } public void notifyLoadMoreFinished(){ isLoadingMore = false; } public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // LogUtil.v("=onScroll======visibleItemCount:"+visibleItemCount+" firstVisibleItem:"+firstVisibleItem+" totalItemCount:"+totalItemCount); if(firstVisibleItem+visibleItemCount==totalItemCount&&!isLoadingMore&&firstVisibleItem!=0){ if(loadMore!=null) { isLoadingMore = true; loadMore.startLoadMore(); } } } public interface RefreshingCallback{ void startLoadMore(); } }
需要注意的是:因为List加了个footer所以此处最后一个条目会返回null
@Overridepublic Object getItem(int position) {if(list.size()>position){return list.get(position);}return null; //Bug}这里面还有一点需要自己注意:就是当没有网络的时候,此处会一直处于:
isLoadingMore = true; 状态。除非再次初始化。
建议:可以在网络请求失败后做通知ListView还原的处理
isLoadingMore = false;
相关文章推荐
- ListView实现下拉刷新及上拉加载更多的一种方式
- 安卓,采用最简单易懂的方式实现上拉刷新下拉加载更多
- ListView、RecyclerView 两种方式实现聊天界面支持文字、表情、图片和语音信息,支持下拉加载更多
- 安卓,采用最简单易懂的方式实现上拉刷新下拉加载更多
- android ListView的上部下拉刷新下部点击加载更多具体实现及拓展
- Android UI--自定义ListView(实现下拉刷新+加载更多)
- ListView实现下拉刷新和上拉加载更多时遇到的诸多问题与解析
- 【Android界面实现】整合了刷新、加载更多、滑动删除功能的XListview
- android ListView的上部下拉刷新下部点击加载更多具体实现及拓展
- ListView实现上拉加载更多
- 简单代码实现 加载更多效果
- android ListView的上部下拉刷新下部点击加载更多具体实现及拓展
- Android UI--自定义ListView(实现下拉刷新+加载更多)
- android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
- Android Demo之旅 ListView底部添加加载更多按钮实现数据分页
- Listview中使用线程实现无限加载更多项目的功能
- Android UI--自定义ListView(实现下拉刷新+加载更多)
- ListView下拉刷新上拉加载更多实现
- ListView下拉刷新上拉加载更多实现
- Android UI--自定义ListView(实现下拉刷新+加载更多)