ListView的滑动监听

来源:互联网 发布:门牌地址数据标准 编辑:程序博客网 时间:2024/05/17 09:12

近来任务中总是迷之添加一些页面滑动时控制某个view状态的改变的操作,而页面的滑动一般情况无非就是ScrollView和ListView的居多,如果是ScrollView的话可以通过自定义并重写onScrollChanged(int l, int t, int oldl, int oldt)方法,然后添加个回调接口监听滑动的Y(t)的距离来判断滑动的位置。 ListView也有此方法,但是这里我们可以不用重写,而是直接setOnScrollListener便可以监听ListView是上滑或者下滑,网上也有实现方法,不过我写法虽比较挫,但实测可行。(^_^)。

直接上代码:

    /**     * 记录滑动前的位置     */    private int oldTop = 0;    /**     * 显示在最顶部的item的position     */    private int firstItem = 0;    listView.setOnScrollListener(new OnScrollListener() {        private View v; //当前最顶部的item        @Override        public void onScrollStateChanged(AbsListView view, int scrollState) {        }        @Override        public void onScroll(AbsListView view, int firstVisibleItem,                int visibleItemCount, int totalItemCount) {            if (listView.getChildCount() == 0) {                return;            }            v = listView.getChildAt(0);            int childTop = v.getTop();            if (childTop != oldTop) {                if (firstItem == firstVisibleItem) {                    if (childTop < oldTop) {                        // TODO 上滑                    }else{                        // TODO 下滑                    }                }else{                    firstItem = firstVisibleItem;                }                oldTop = childTop;            }        }    });

对于详细的介绍和滑动到顶部和底部的监听可以见下面的文章:
判断 ListView 滚动到顶部和底部

0 0
原创粉丝点击