如果adapter中的数据量很大的时候,在加载listview时会出现卡顿的现象。这是会让用户抓狂!最好的解决办法就是先加载一定数量的数据,然后在最下方提示正在加载!
动态加载就是把放入adapter中的数据分好几次加载。在用户拖动listview时再加载一定的数据,和sina微博的客户端类似。
给listview添加OnScrollListener监听事件默认会覆盖下面两个方法:
new OnScrollListener() {
boolean isLastRow = false;
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
//滚动时一直回调,直到停止滚动时才停止回调。单击时回调一次。
//firstVisibleItem:当前能看见的第一个列表项ID(从0开始)
//visibleItemCount:当前能看见的列表项个数(小半个也算)
//totalItemCount:列表项共数
//判断是否滚到最后一行
if (firstVisibleItem + visibleItemCount == totalItemCount && totalItemCount > 0) {
isLastRow = true;
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
//正在滚动时回调,回调2-3次,手指没抛则回调2次。scrollState = 2的这次不回调
//回调顺序如下
//第1次:scrollState = SCROLL_STATE_TOUCH_SCROLL(1) 正在滚动
//第2次:scrollState = SCROLL_STATE_FLING(2) 手指做了抛的动作(手指离开屏幕前,用力滑了一下)
//第3次:scrollState = SCROLL_STATE_IDLE(0) 停止滚动 //当屏幕停止滚动时为0;当屏幕滚动且用户使用的触碰或手指还在屏幕上时为1;
//由于用户的操作,屏幕产生惯性滑动时为2
//当滚到最后一行且停止滚动时,执行加载
if (isLastRow && scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
//加载元素
......
isLastRow = false;
}
}
}
分享到:
相关推荐
android之OnScrollListener 下拉刷新
OnSCrollListener 滚屏时候不加载数据
主要介绍了Android应用中ListView利用OnScrollListener分页加载数据的方法,包括对OnScrollListener事件顺序次数的分析,需要的朋友可以参考下
Android开源代码解读のOnScrollListener实现ListActivity滚屏首字母提示_IT168文库ListActivity
Android ListView 之 自定义Adapter 实现列表条目功能,以及 OnItemClickListener(点击事件) OnScrollListener(滑动事件)事件监听 目录 Android ListView 之 自定义Adapter 实现列表条目功能,以及 ...
AbstractAjaxCallback, LocationAjaxCallback> //本地位置信息回调 封装了本地手机gps、network确认手机位置信息 然后返回最新位置信息 public abstract class AbstractAQuery<T extends AbstractAQuery<T>> ...
1.在listview中加入20条载入中的这个布局并隐藏 2.加入OnScrollListener监听,通过监听滚动事件,当滚动到最低端的时候,...3.通过接口回调实现加载更多的功能 4.加载完数据时,通知listview加载结束,隐藏上面的布局文件
方法和行号键盘实用程序显示/隐藏键盘ReflectionUtil 通过反射获得/吸收ToastUtil 显示吐司的捷径AddOnScrollListenerUtil 未set但add AbsListView.OnScrollListener MainThreadCallback 在MainThread上执行的OkHttp...
关于ListView的OnScrollListener监听设置
public class XListView extends ListView implements OnScrollListener { private float mLastY = -1; // save event y /** * 用于下拉后,滑动返回 */ private Scroller mScroller; // used for scroll ...
抽屉demo和下拉刷新的组合Fragment,ListView,OnScrollListener
2.响应OnScrollListener监听事件,onScroll方法记录最后可见的View Item以及整个totalItemCount。当onScrollStateChanged状态改变时, 当滑动到底端,并滑动状态为 SCROLL_STATE_IDLE,显示底部加载View,开始实现...
类代码RecyclerView的滚动监听——RecyclerView.OnScrollListener是个抽象内部类类代码可以添加多个滚动监听器ViewPage
scrollview滑动到顶部后,把比较重要的view悬浮在顶部。scrollview没有onscrollListener,自定义的监听事件。
videoList.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState) { case AbsListVie
我们先分析一下如何实现 ListView 上拉加载。 当我们上拉的时候,会出现一个提示界面,即 ListView 的 Footer 布局。 ListView 要实现滚动,所以要监听 ListView 滚动事件,即 OnScrollListener() 事件。 当我们...
回收站的姿态轻量级库,用于基于 RecycleView.... 如果使用了 OnScrollListener,则无需替换/删除。 ##简单使用 DragDropGesture . Builder builder = new DragDropGesture . Builder () . on(recyclerView) . build()
此资源只使用自定义scrollview 实现标题栏渐变和上拉下拉刷新。如果需要listview,等其他控件,需实现onScrollListener,在onscroll中嵌入渐变代码。