OnScrollListenerPro
16lz
2021-01-26
OnScrollListenerPro
————OnScrollListener 加强版
@[Android|ListView|OnScrollListener]
在写listview的时候很时候我们都会遇到一些场景
- 判断当前是向上滚动,精确到px
- 判断是否滚动到最后一个
但是Android提供给我们的OnScrollView不能给我们提供这些功能
于是我写了一个OnScrollListenerPro来完成这样的事情
package org.hangox.test;import android.view.View;import android.widget.AbsListView;/** * Created With Android Studio * User 47 * Date 2014-11-03 * Time 17:42 * 一个加强板的OnScrollListener * 可以提供向上滑动向下活动检测 * 是否是最后一个检测 */public class OnScrollListenerPro implements AbsListView.OnScrollListener { private AbsListView mAbsListView; private int mLimit = 40; private int mLastScroll; @Override public void onScrollStateChanged(AbsListView view, int scrollState) { mAbsListView = view; } /** * 设定最少滚动多少才算是滚动 * @param mLimit */ public void setLimit(int mLimit){ this.mLimit = mLimit; } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { mAbsListView = view; int currentScrollY = getScrollY(); int dValue = currentScrollY - mLastScroll; if(dValue < -mLimit){//向上滚 onScrollUp(mLastScroll,currentScrollY); mLastScroll = currentScrollY; }else if(dValue > mLimit ){//向下滚 onScrollDown(mLastScroll,currentScrollY); mLastScroll = currentScrollY; } if(((totalItemCount > 0) && (firstVisibleItem + visibleItemCount >= totalItemCount - 1))) onLastItemShow(); } /** * 向上滚动 * @param lastScroll * @param currentScroll */ public void onScrollUp(int lastScroll,int currentScroll){ } /** * 向下滚动 * @param lastScroll 上一次滚动值 * @param currentScroll 这一次 */ public void onScrollDown(int lastScroll,int currentScroll){ } public void onLastItemShow(){ } public int getScrollY() {//获取滚动距离 View c = mAbsListView.getChildAt(0); if (c == null) { return 0; } int firstVisiblePosition = mAbsListView.getFirstVisiblePosition(); int top = c.getTop(); int headerHeight = 0; if (firstVisiblePosition >= 1) { headerHeight = mAbsListView.getHeight(); } return -top + firstVisiblePosition * c.getHeight() + headerHeight; }}
使用很简单,重写其中的函数就可以了
更多相关文章
- [android] ScrollView 设置滚动条的初始位置
- 1.2android——UI界面之ScrollView实现上下文滚动
- 优化Recorder H5录音:可边录边转码上传服务器,支持微信提供Android
- Android(安卓)ScrollView 滚动监听
- Android侧拉框的简单实现
- Content Providers-原文[译]
- Android重力传感器实现滚动的弹球
- Android:如何给 ScrollView 添加滑块滚动条
- Android(安卓)文字自动滚动(跑马灯)效果的两种实现方法[特别好使]