android scroller
来源:互联网 发布:mac怎么登陆远程桌面 编辑:程序博客网 时间:2024/06/09 23:13
view滚动的辅助类,作用是计算滚动的距离,而不是用它来滚动View,虽然也是android.widget,不要把它误认为是scrollView
每个View都可以移动,都有scrollTo()【根据初始位置移动】、scrollBy()【根据当前位置移动】方法
View移动的坐标系与View的坐标系相反,比如向下移动60——view.scrollTo(0,-60)
,View向下是Y轴的正坐标,而向正坐标方向移动60,居然用的是-60
scroller一般用在自定义ViewGroup上,在onLayout方法中,ViewGroup把一部分子View,放到ViewGroup的边界外面,使他们无法显示,再通过手指滑动来显示这些子View,隐藏原来显示的子View
手指滑动时再ViewGroup中的onTouchEvent中,用ViewGroup的scrollBy来控制移动,当松开手指后,需要ViewGroup实现自动移动回原先位置,或者自动移动到结尾,这个自动滚动就由scroller来控制
具体参看
Android Scroller完全解析,关于Scroller你所需知道的一切
Android Scroller大揭秘
这里来简单看看怎么用这个东西,下面是自定义View中关于松开手指后自动滚动的逻辑
Overridepublic boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { //....... case MotionEvent.ACTION_UP: //....... //startScroll作用是设置滚动的起始位置,结束位置,和滚动时间 //这里没有设置滚动时间,就是使用默认的滚动时间,250毫秒 mScroller.startScroll(getScrollX(), 0, dx, 0); //该方法会重绘View,onDraw和computeScroll会被重新调用 invalidate(); break; } return super.onTouchEvent(event);}@Overridepublic void computeScroll() { //computeScrollOffset:根据时间的流逝计算当前需要滚动的距离,并返回一个boolean值,true表示当前滚动还没结束 if (mScroller.computeScrollOffset()) { //如果当前滚动还没结束,取出先前计算的滚动距离,调用View的scrollTo方法,滚动这个自动以View scrollTo(mScroller.getCurrX(), mScroller.getCurrY()); invalidate(); }}
阅读全文
0 0
- android scroller
- android Scroller
- android scroller
- android scroller
- android scroller
- android scroller
- android Scroller
- Android Scroller
- android scroller
- android Scroller
- android Scroller使用
- android滑动之Scroller
- android 中文 API- Scroller
- Android Scroller简介
- Android Scroller简单用法
- Android Scroller的用法
- Android类说明---Scroller
- android scroller用法
- 批量修改文件名
- My97DatePicker的简单使用
- 欢迎使用CSDN-markdown编辑器
- HDU 3695 Computer Virus on Planet Pandora and HDU 2896 病毒侵袭(AC自动机裸题)
- 在eclipse中修改spark2.1源码
- android scroller
- JavaScript 中 4 种常见的内存泄露陷阱
- HDU 5443 The Water Problem [rmq]
- 进程、线程、轻量级进程、协程和go中的Goroutine 那些事儿
- 博客搬家
- 70. Climbing Stairs(登高)
- DNS劫持原理与操作
- ubuntu下命令运行出错:Please try running this command again as root/Administrator
- Eclipse 一直在 Building Workspace 怎么解决