ScrollView中文API.docx

上传人:b****6 文档编号:8724952 上传时间:2023-02-01 格式:DOCX 页数:12 大小:21.30KB
下载 相关 举报
ScrollView中文API.docx_第1页
第1页 / 共12页
ScrollView中文API.docx_第2页
第2页 / 共12页
ScrollView中文API.docx_第3页
第3页 / 共12页
ScrollView中文API.docx_第4页
第4页 / 共12页
ScrollView中文API.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

ScrollView中文API.docx

《ScrollView中文API.docx》由会员分享,可在线阅读,更多相关《ScrollView中文API.docx(12页珍藏版)》请在冰豆网上搜索。

ScrollView中文API.docx

ScrollView中文API

声明

  欢迎转载,但请保留文章原始出处:

    博客园:

    Android中文翻译组:

http:

//goo.gl/6vJQl

 

正文

  一、结构

publicclassScrollViewextendsFrameLayout

        

java.lang.Object

android.view.View

        android.view.ViewGroup

                  android.widget.FrameLayout

                           android.widget.ScrollView

 

  二、概述

  一种可供用户滚动的层次结构布局容器,允许显示比实际多的内容。

ScrollView是一种FrameLayout,意味需要在其上放置有自己滚动内容的子元素。

子元素可以是一个复杂的对象的布局管理器。

通常用的子元素是垂直方向的LinearLayout,显示在最上层的垂直方向可以让用户滚动的箭头。

  TextView类也有自己的滚动功能,所以不需要使用ScrollView,但是只有两个结合使用,才能保证显示较多内容时候的效率。

但只有两者结合使用才可以实现在一个较大的容器中一个文本视图效果。

  ScrollView只支持垂直方向的滚动。

 

  三、构造函数

publicScrollView(Contextcontext)

创建一个默认属性的ScrollView实例。

 

publicScrollView(Contextcontext,AttributeSetattrs)

创建一个带有attrs属性的ScrollView实例。

 

publicScrollView(Contextcontext,AttributeSetattrs,intdefStyle)

创建一个带有attrs属性,并且指定其默认样式的ScrollView实例。

 

  四、公共方法

  publicvoidaddView(Viewchild)

        添加子视图。

如果事先没有给子视图设置layout参数,会采用当前ViewGroup的默认参数来设置子视图。

               参数

                      child      所添加的子视图

 

  publicvoidaddView(Viewchild,intindex)

  添加子视图。

如果事先没有给子视图设置layout参数,会采用当前ViewGroup的默认参数来设置子视图。

   参数

  child      所添加的子视图

              index     添加子视图的位置

        

  publicvoidaddView(Viewchild,intindex,ViewGroup.LayoutParamsparams)

  根据指定的layout参数添加子视图

  参数

              child      所添加的子视图

              index     添加子视图的位置

              params  为子视图设置的layout参数

 

  publicvoidaddView(Viewchild,ViewGroup.LayoutParamsparams)

  根据指定的layout参数添加子视图。

  参数

              child      所添加的子视图

              params  为子视图设置的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的事件

  返回值

  事件被处理返回true,否则返回false。

 

  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将收回焦点。

  参数

      direction       滚动方向:

FOCUS_UP表示向上翻一页,FOCUS_DOWN表示向下翻一页。

  返回值

  此key事件被消耗(cosumed)返回true,其他返回false。

 

  publicvoidrequestChildFocus(Viewchild,Viewfocused)

  当父视图的一个子视图的要获得焦点时,调用此方法。

  参数

      child             要获得焦点的父视图的子视图。

此视图包含了焦点视图。

如果没有特殊徐要求,此视图实际上就是焦点视图。

              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)

  设置当前滚动视图是否将内容高度拉伸以填充视图可视范围(译者注:

viewport可视范围,参见决定Scrollviewer里面Control的可视范围)。

  参数

      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    要滚动到位置的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.0(没有消失)到1.0(完全消失)之间。

缺省的执行返回值为0.0或者1.0,而不是他们中间的某个值。

滚动时子类需要重载这个方法来提供一个平缓的渐隐的实现。

  返回值

  滚动顶部能见度,值的范围在浮点数0.0f到1.0f之间。

 

  protectedvoidmeasureChild(Viewchild,intparentWidthMeasureSpec,intparentHeightMeasureSpec)

  要求当前视图的一个子视图测量自己,同时兼顾到当前视图的MeasureSpec的要求和它的空白。

子视图必须有MarginLayoutParams。

比较复杂的工作是在getChildMeasureSpec中完成的。

  参数

  child            需要自己测量的子视图

  parentWidthMeasureSpec      当前视图要求的宽度

  parentHeightMeasureSpec            当前视图要求的宽度

 

  protectedvoidmeasureChildWithMargins(Viewchild,intparentWidthMeasureSpec,intwidthUsed,intparentHeightMeasureSpec,intheightUsed)

  要求当前视图的一个子视图测量自己,同时兼顾到当前视图的MeasureSpec的要求和它的空白和边界。

子视图必须有MarginLayoutParams。

比较复杂的工作是在getChildMeasureSpec中完成的。

  参数

  child           需要测量的子视图

  parentWidthMeasureSpec      当前视图要求的宽度

  widthUsed   水平方向上由父视图使用的空白(也可能是视图的其他子视图使用的)

  parentHeightMeasureSpec     当前视图要求的宽度

  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 受主窗口支配的垂直空间要求。

这个需求通过View.MeasureSpec.进行编码。

 

    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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1