ScrollView中文API文档格式.docx
《ScrollView中文API文档格式.docx》由会员分享,可在线阅读,更多相关《ScrollView中文API文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
publicScrollView(Contextcontext,AttributeSetattrs)
创建一个带有attrs属性的ScrollView实例。
publicScrollView(Contextcontext,AttributeSetattrs,intdefStyle)
创建一个带有attrs属性,并且指定其默认样式的ScrollView实例。
四、公共方法
publicvoidaddView(Viewchild)
添加子视图。
如果事先没有给子视图设置layout参数,会采用当前ViewGroup的默认参数来设置子视图。
参数
child
所添加的子视图
publicvoidaddView(Viewchild,intindex)
添加子视图。
参数
child
index
添加子视图的位置
publicvoidaddView(Viewchild,intindex,ViewGroup.LayoutParamsparams)
根据指定的layout参数添加子视图
参数
index
params
为子视图设置的layout参数
publicvoidaddView(Viewchild,ViewGroup.LayoutParamsparams)
根据指定的layout参数添加子视图。
publicbooleanarrowScroll(intdirection)
响应点击上下箭头时对滚动条滚动的处理。
direction
按下的箭头所对应的方向
返回值
如果我们处理(消耗)了此事件返回true,否则返回false。
publicvoidcomputeScroll()
被父视图调用,用于必要时候对其子视图的值(mScrollX和mScrollY)进行更新。
典型的情况如:
父视图中某个子视图使用一个Scroller对象来实现滚动操作,会使得此方法被调用。
publicbooleandispatchKeyEvent(KeyEventevent)
发送一个key事件给当前焦点路径的下一个视图。
此焦点路径从视图树的顶层执行直到当前焦点视图。
如果此视图为焦点视图,将为自己发送。
否则,会为当前焦点路径的下一个节点发送。
此方法也会激起一个key监听器。
event
发送的key事件
事件被处理返回true,否则返回false。
publicvoiddraw(Canvascanvas)
手动绘制视图(及其子视图)到指定的画布(Canvas)。
这个视图必须在调用这个函数之前做好了整体布局。
当实现一个视图时,不需要继承这个方法;
相反,你应该实现onDraw(Canvas)方法。
canvas
绘制视图的画布
publicbooleanexecuteKeyEvent(KeyEventevent)
当接收到key事件时,用户可以调用此函数来使滚动视图执行滚动,类似于处理由视图体系发送的事件。
event
需要执行key的事件
publicvoidfling(intvelocityY)
滚动视图的滑动(fling)手势。
(译者注:
如何监听android的屏幕滑动停止事件)
velocityY
Y方向的初始速率。
正值表示手指/光标向屏幕下方滑动,而内容将向上滚动。
publicbooleanfullScroll(intdirection)
对响应“home/end”短按时响应滚动处理。
此方法将视图滚动到顶部或者底部,并且将焦点置于新的可视区域的最顶部/最底部组件。
若没有适合的组件做焦点,当前的ScrollView会收回焦点。
direction滚动方向:
FOCUS_UP表示视图向上滚动;
FOCUS_DOWN表示视图向下滚动
若key事件被消耗(consumed)返回true,其他情况返回false。
publicintgetMaxScrollAmount()
当前滚动视图响应箭头事件能够滚动的最大数。
publicbooleanisFillViewport()
指示当前ScrollView的内容是否被拉伸以填充视图可视范围(译者注:
viewport可视范围,参见决定Scrollviewer里面Control的可视范围)。
内容填充视图返回true,否则返回false。
publicbooleanisSmoothScrollingEnabled()
按箭头方向滚动时,是否显示滚动的平滑效果。
publicbooleanonInterceptTouchEvent(MotionEventev)
实现此方法是为了拦截所有触摸屏幕时的运动事件。
可以像处理发送给子视图的事件一样去监视这些事件,并且获取当前手势在任意点的ownership
使用此方法时候需要注意,因为它与View.onTouchEvent(MotionEvent)有相当复杂的交互,并且前提需要正确执行View.onTouchEvent(MotionEvent)。
事件将按照如下顺序接收到:
1.
收到down事件
2.
Down事件或者由视图组的一个子视图处理,或者被用户自己的onTouchEvent()方法处理;
此处理意味你应该执行onTouchEvent()时返回true,这样才能继续看到剩下的手势(取代找一个父视图处理)。
如果onTouchEvent()返回true时,你不会收到onInterceptTouchEvent()的任何事件并且所有对触摸的处理必须在onTouchEvent()中发生。
3.
如果此方法返回false,接下来的事件(uptoandincludingthefinalup)将最先被传递当此,然后是目标的onTouchEvent()。
4.
如果返回true,将不会收到以下任何事件:
目标view将收到同样的事件但是会伴随ACTION_CANCEL,并且所有的更进一步的事件将会传递到你自己的onTouchEvent()方法中而不会再在这里出现。
ev
体系向下发送的动作事件
如果将运动事件从子视图中截获并且通过onTouchEvent()发送到当前ViewGroup,返回true。
当前目标将会收到ACTION_CANCEL事件,并且不再会有其他消息传递到此。
(译者注:
onInterceptTouchEvent和onTouchEvent调用时序)
publicbooleanonTouchEvent(MotionEventev)
执行此方法为了处理触摸屏幕的运动事件。
ev
运动事件
事件被处理返回true,其它返回false。
publicbooleanpageScroll(intdirection)
响应短按“pageup/down”时候对滚动的处理。
此方法将向上或者向下滚动一屏,并且将焦点置于新可视区域的最上/最下。
如果没有适合的component作为焦点,当前scrollView将收回焦点。
滚动方向:
FOCUS_UP表示向上翻一页,FOCUS_DOWN表示向下翻一页。
此key事件被消耗(cosumed)返回true,其他返回false。
publicvoidrequestChildFocus(Viewchild,Viewfocused)
当父视图的一个子视图的要获得焦点时,调用此方法。
要获得焦点的父视图的子视图。
此视图包含了焦点视图。
如果没有特殊徐要求,此视图实际上就是焦点视图。
focused
子视图的子孙视图并且此子孙视图是真正的焦点视图
publicbooleanrequestChildRectangleOnScreen(Viewchild,Rectrectangle,booleanimmediate)
当组里的某个子视图需要被定位在屏幕的某个矩形范围时,调用此方法。
重载此方法的ViewGroup可确认以下几点:
*子项目将是组里的直系子项
*矩形将在子项目的坐标体系中
重载此方法的ViewGroup应该支持以下几点:
*若矩形已经是可见的,则没有东西会改变
*为使矩形区域全部可见,视图将可以被滚动显示
child
发出请求的子视图
rectangle
子项目坐标系内的矩形,即此子项目希望在屏幕上的定位
immediate
设为true,则禁止动画和平滑移动滚动条
返回值
进行了滚动操作的这个组(group),是否处理此操作。
publicvoidrequestLayout()
当有改变引起当前视图重新布局时,调用此函数。
它将规划一个视图树的layout路径。
publicvoidscrollTo(intx,inty)
设置当前视图滚动到的位置。
此函数会引起对onScrollChanged(int,int,int,int)函数的调用并且会让视图更新。
当前版本取消了在子视图中的滚动。
x
滚动到的X位置
y
滚动到的Y位置
publicvoidsetFillViewport(booleanfillViewport)
设置当前滚动视图是否将内容高度拉伸以填充视图可视范围(译者注:
fillViewport
设置为true表示拉伸内容高度来适应视口边界;
其他设为false。
publicvoidsetOverScrollMode(intmode)
为视图设置over-scroll模式。
有效的over-scroll模式有OVER_SCROLL_ALWAYS(缺省值),OVER_SCROLL_IF_CONTENT_SCROLLS(只允许当视图内容大过容器时,进行over-scrolling)和OVER_SCROLL_NEVER。
只有当视图可以滚动时,此项设置才起作用。
这个函数是2.3r1中新增的,APILevel9。
关于over-scroll这里译为弹性滚动,即,参见帖子:
类似iPhone的弹性ListView滚动)
mode
Thenewover-scrollmodeforthisview.
publicvoidsetSmoothScrollingEnabled(booleansmoothScrollingEnabled)
用来设置箭头滚动是否可以引发视图滚动。
smoothScrollingEnabled
设置箭头滚动是否可以引起内容的滚动的bool值
publicfinalvoidsmoothScrollBy(intdx,intdy)
类似于scrollBy(int,int),但是滚动时候是平缓的而不是立即滚动到某处。
dx
在X方向滚动的像素数
dy
在Y方向滚动的像素数
publicfinalvoidsmoothScrollTo(intx,inty)
类似于scrollTo(int,int),但是滚动时候是平缓的而不是立即滚动到某处。
要滚动到位置的X坐标
y
要滚动到位置的Y坐标
五、受保护方法
protectedintcomputeScrollDeltaToGetChildRectOnScreen(Rectrect)
计算X方向滚动的总合,以便在屏幕上显示子视图的完整矩形(或者,若矩形宽度超过屏幕宽度,至少要填满第一个屏幕大小)。
rect
矩形
滚动差值
protectedintcomputeVerticalScrollOffset()
计算垂直方向滚动条的滑块的偏移。
此值用来计算滚动条轨迹的滑块的位置。
范围可以以任意单位表示,但是必须与computeVerticalScrollRange()和computeVerticalScrollExtent()的单位一致。
缺省的偏移是在当前视图滚动的偏移。
滚动条的滑块垂直方向的偏移。
protectedintcomputeVerticalScrollRange()
滚动视图的可滚动范围是所有子元素的高度。
由垂直方向滚动条代表的所有垂直范围,缺省的范围是当前视图的画图高度。
protectedfloatgetBottomFadingEdgeStrength()
返回滚动底部的能见度。
能见度的值的范围是0.0(没有消失)到1.0(完全消失)之间。
缺省的执行返回值为0.0或者1.0,而不是他们中间的某个值。
滚动时子类需要重载这个方法来提供一个平缓的渐隐的实现。
滚动底部能见度,值的范围在浮点数0.0f到1.0f之间。
protectedfloatgetTopFadingEdgeStrength()
返回滚动顶部的能见度。
滚动顶部能见度,值的范围在浮点数0.0f到1.0f之间。
protectedvoidmeasureChild(Viewchild,intparentWidthMeasureSpec,intparentHeightMeasureSpec)
要求当前视图的一个子视图测量自己,同时兼顾到当前视图的MeasureSpec的要求和它的空白。
子视图必须有MarginLayoutParams。
比较复杂的工作是在getChildMeasureSpec中完成的。
需要自己测量的子视图
parentWidthMeasureSpec
当前视图要求的宽度
parentHeightMeasureSpec
protectedvoidmeasureChildWithMargins(Viewchild,intparentWidthMeasureSpec,intwidthUsed,intparentHeightMeasureSpec,intheightUsed)
要求当前视图的一个子视图测量自己,同时兼顾到当前视图的MeasureSpec的要求和它的空白和边界。
需要测量的子视图
parentWidthMeasureSpec
widthUsed
水平方向上由父视图使用的空白(也可能是视图的其他子视图使用的)
heightUsed
垂直方向上由父视图使用的空白(也可能是视图的其他子视图使用的)
protectedvoidonLayout(booleanchanged,intl,intt,intr,intb)
当前视图需要为子视图分配大小和位置时候调用,子类继承必须要重载此方法并调用自己子视图的layout函数。
changed
当前视图的新的大小或者位置
l
相对父视图,左边界位置
t
相对父视图,上边界位置
r
相对父视图,右边界位置
b
相对父视图,下边界位置
protectedvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec)
测量视图以确定其内容宽度和高度。
此方法被measure(int,int)调用。
需要被子类重写以提供对其内容准确高效的测量。
约定:
当重写此方法时,你必须调用setMeasuredDimension(int,int)来保存当前视图view的宽度和高度。
不成功调用此方法将会导致一个IllegalStateException异常,是由measure(int,int)抛出。
所以调用父类的onMeasure(int,int)方法是必须的。
父类的实现是以背景大小为默认大小,除非MeasureSpec(测量细则)允许更大的背景。
子类可以重写onMeasure(int,int)以对其内容提供更佳的尺寸。
如果此方法被重写,那么子类的责任是确认测量高度和测量宽度要大于视图view的最小宽度和最小高度(getSuggestedMinimumHeight()和getSuggestedMinimumWidth()),使用这两个方法可以取得最小宽度和最小高度。
widthMeasureSpec
受主窗口支配的水平空间要求。
这个需求通过View.MeasureSpec.进行编码。
heightMeasureSpec
受主窗口支配的垂直空间要求。
protectedvoidonOverScrolled(intscrollX,intscrollY,booleanclampedX,booleanclampedY)
被overScrollBy(int,int,int,int,int,int,int,int,boolean)调用,来对一个over-scroll操作的结果进行响应。
这个函数是2.3r1中新增的,APILevel9)
scrollX
新的X滚动像素值
scrollY
新的Y滚动像素值
clampedX
当scrollX被over-scroll的边界限制时,值为true
clampedY
当scrollY被over-scroll的边界限制时,值为true
protectedbooleanonRequestFocusInDescendants(intdirection,RectpreviouslyFocusedRect)
当在滚动视图的子视图中查找焦点视图时,需要注意不要将焦点设置在滚动出屏幕外的控件上。
此方法会比执行缺省的ViewGroup代价高,否则此行为也会设置为缺省
direction指定下列常量之一:
FOCUS_UP,FOCUS_DOWN,FOCUS_LEFT,FOCUS_RIG