监听HorizontalScrollView滑动到最左/最右
来源:互联网 发布:剑灵人族捏脸数据2016 编辑:程序博客网 时间:2024/06/06 22:17
监听ScrollView滑动停止后,滚动条的位置,是在最左?最右?其它地方?
1,先定制HorizontalScrollView
import android.content.Context;import android.graphics.Rect;import android.util.AttributeSet;import android.widget.HorizontalScrollView;public class ScrollViewCustom extends HorizontalScrollView{private Runnable scrollerTask;private int intitPosition;private int newCheck = 100;private int childWidth = 0;public interface OnScrollStopListner{/** * scroll have stoped */void onScrollStoped();/** * scroll have stoped, and is at left edge */void onScrollToLeftEdge();/** * scroll have stoped, and is at right edge */void onScrollToRightEdge();/** * scroll have stoped, and is at middle */void onScrollToMiddle();}private OnScrollStopListner onScrollstopListner;public ScrollViewCustom(Context context, AttributeSet attrs){super(context, attrs);scrollerTask = new Runnable(){@Overridepublic void run(){int newPosition = getScrollX();if (intitPosition - newPosition == 0){if(onScrollstopListner == null){return;}onScrollstopListner.onScrollStoped();Rect outRect = new Rect();getDrawingRect(outRect);if(getScrollX() == 0){onScrollstopListner.onScrollToLeftEdge();}else if(childWidth + getPaddingLeft() + getPaddingRight() == outRect.right){onScrollstopListner.onScrollToRightEdge();}else{onScrollstopListner.onScrollToMiddle();}} else{intitPosition = getScrollX();postDelayed(scrollerTask, newCheck);}}};}public void setOnScrollStopListner(OnScrollStopListner listner){onScrollstopListner = listner;}public void startScrollerTask(){intitPosition = getScrollX();postDelayed(scrollerTask, newCheck);checkTotalWidth();}private void checkTotalWidth(){if(childWidth > 0){return;}for(int i = 0; i < getChildCount(); i++){childWidth += getChildAt(i).getWidth();}}}
2,使用
protected void onCreate(Bundle savedInstanceState) { final ScrollViewCustom scrollView; scrollView.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { scrollView.startScrollerTask(); } return false; } }); scrollView.setOnScrollStopListner(new OnScrollStopListner() { public void onScrollToRightEdge() { } public void onScrollToMiddle() { } public void onScrollToLeftEdge() { } public void onScrollStoped() { } }); }
- 监听HorizontalScrollView滑动到最左/最右
- 监听HorizontalScrollView滑动到最左/最右
- Android ViewPager与仿Gallery的HorizontalScrollView互相滑动监听
- ScrollView的滑动监听(以HorizontalScrollView为例)
- 【android】判断HorizontalScrollView/ScrollView滑到最左/上和最右/下
- HorizontalScrollView滑动
- 自定义HorizontalScrollView嵌套HorizontalListView实现手势监听、按钮监听滑动功能
- HorizontalScrollView嵌套在ListView,实现从右向左滑动单个删除,当滑动出来后,解决HorizontalScrollView被ListView回收+多个删除
- Android 监听 ScrollView 滑动到最底部
- HorizontalScrollView 自动滑动
- 横向滑动HorizontalScrollView+Gridview
- HorizontalScrollView 滑动处理
- android 横向滑动 HorizontalScrollView
- HorizontalScrollView随页面滑动
- HorizontalScrollView之水平滑动
- Android HorizontalScrollView左右滑动
- HorizontalScrollView横向滑动
- HorizontalScrollView横向滑动
- Android 中的拿来主义(编译,反编译,AXMLPrinter2,smali,baksmali)!
- 关于WTSRegisterSessionNotification函数的介绍及使用
- 在PC上使用串口向开发板传送文件
- 使用Qt在内存中画图
- ABAP-弹出对话框函数-'POPUP_TO_CONFIRM'
- 监听HorizontalScrollView滑动到最左/最右
- Android SDK下载和更新失败的解决方法!!!
- Linux tcpdump命令详解
- IOS 入门开发之使用XCODE4制作静态库详解
- CSliderCtrl 内存泄露
- JS 从cookie集合中获取cookie
- 同桌之间那些或暧昧或有趣的事
- webview
- extjs4.0 tree 整体刷新,对单个节点的增删改问题