ListView加载更多的最简单实现方式
来源:互联网 发布:火狐淘宝无法登陆 编辑:程序博客网 时间:2024/06/05 02:43
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; boolean isLoadingMore = 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;
0 0
- ListView加载更多的最简单实现方式
- 安卓,采用最简单易懂的方式实现上拉刷新下拉加载更多
- 安卓,采用最简单易懂的方式实现上拉刷新下拉加载更多
- listView的加载更多
- ListView实现下拉刷新及上拉加载更多的一种方式
- “加载更多,请稍后......”的实现方式
- ListView单选效果(最简单的实现方式)
- 最简单的listview实现
- PullToRefresh实现ListView的刷新,加载更多的展示
- ListView的下拉加载更多
- 自动加载更多的listView
- Android ListView下拉刷新上拉加载更多的实现
- listview下拉刷新,上拉加载更多的实现方法
- Android实现ListView的下拉刷新、上拉加载更多
- ListView下拉刷新和上拉加载更多的实现
- 简单搞定listview下拉加载更多
- listview加载刷新加载更多的逻辑
- 实现Android ListView 自动加载更多内容
- Linux下的SSH端口转发
- Web系统大规模并发
- Android xml常用
- Linux线程编程 - 线程同步机制之互斥锁
- 图形验证码的实现
- ListView加载更多的最简单实现方式
- DispatchMessage - synchronous or asynchronous
- 简单--> js 计算器
- POJ 1635 Subway tree systems (BSOJ 1092)
- 线程池
- 避免带有变长参数的方法重载
- c# 入门级Java对比 7 —— 委托
- Vijos P1118 统计单词个数(动态规划,划分型DP,字符串)
- 标准库类型vector