Most visited

Recently visited

Added in API level 1

ScrollView

public class ScrollView
extends FrameLayout

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.FrameLayout
         ↳ android.widget.ScrollView


用于视图层次结构的布局容器,可以由用户滚动,允许它比物理显示更大。 一个ScrollView是一个FrameLayout ,这意味着你应该在其中放置一个包含整个内容滚动的子项; 这个孩子本身可能是一个具有复杂对象层次结构的布局管理器。 经常使用的孩子是垂直方向的LinearLayout ,呈现用户可以滚动浏览的顶级项目的垂直阵列。

你不应该在ListView使用ScrollView,因为ListView负责自己的垂直滚动。 最重要的是,这样做会挫败ListView中用于处理大型列表的所有重要优化,因为它有效地强制ListView显示其整个项目列表以填充由ScrollView提供的无限容器。

TextView类还负责自己的滚动,因此不需要ScrollView,但使用这两者可以在较大的容器中实现文本视图的效果。

ScrollView只支持垂直滚动。 对于水平滚动,请使用HorizontalScrollView

Summary

XML attributes

android:fillViewport Defines whether the scrollview should stretch its content to fill the viewport. 

Inherited XML attributes

From class android.widget.FrameLayout
From class android.view.ViewGroup
From class android.view.View

Inherited constants

From class android.view.ViewGroup
From class android.view.View

Inherited fields

From class android.view.View

Public constructors

ScrollView(Context context)
ScrollView(Context context, AttributeSet attrs)
ScrollView(Context context, AttributeSet attrs, int defStyleAttr)
ScrollView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Public methods

void addView(View child, int index)

添加子视图。

void addView(View child, ViewGroup.LayoutParams params)

添加具有指定布局参数的子视图。

void addView(View child, int index, ViewGroup.LayoutParams params)

添加具有指定布局参数的子视图。

void addView(View child)

添加子视图。

boolean arrowScroll(int direction)

响应向上或向下箭头点击处理滚动。

void computeScroll()

由父级调用,以请求孩子在必要时更新mScrollX和mScrollY的值。

boolean dispatchKeyEvent(KeyEvent event)

将关键事件分派到焦点路径上的下一个视图。

void draw(Canvas canvas)

手动将此视图(及其所有子项)呈现给定的Canvas。

boolean executeKeyEvent(KeyEvent event)

您可以自己调用此函数以使滚动视图执行从关键事件滚动,就好像该事件已由视图层次结构分派给它一样。

void fling(int velocityY)

滚动滚动视图

boolean fullScroll(int direction)

处理滚动以响应“家庭/结束”快捷键。

CharSequence getAccessibilityClassName()

返回此对象的类名称以用于辅助功能。

int getMaxScrollAmount()
boolean isFillViewport()

指示此ScrollView的内容是否拉伸以填充视口。

boolean isSmoothScrollingEnabled()
boolean onGenericMotionEvent(MotionEvent event)

实现此方法来处理通用运动事件。

boolean onInterceptTouchEvent(MotionEvent ev)

实施此方法来拦截所有触摸屏幕动作事件。

boolean onNestedFling(View target, float velocityX, float velocityY, boolean consumed)

从嵌套滚动中请求投掷。

void onNestedScroll(View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed)

反应到正在进行的嵌套滚动。

void onNestedScrollAccepted(View child, View target, int axes)

响应成功声明嵌套滚动操作。

boolean onStartNestedScroll(View child, View target, int nestedScrollAxes)

响应启动可嵌套滚动操作的后代视图,并在适当的情况下声明嵌套滚动操作。

void onStopNestedScroll(View target)

反应到嵌套滚动操作结束。

boolean onTouchEvent(MotionEvent ev)

实现此方法来处理触摸屏幕动作事件。

boolean pageScroll(int direction)

响应“页面向上/向下”快捷按钮,处理滚动。

void requestChildFocus(View child, View focused)

当这个父母的孩子需要关注时调用

boolean requestChildRectangleOnScreen(View child, Rect rectangle, boolean immediate)

当该组的小孩想要将特定矩形定位到屏幕上时调用。

void requestDisallowInterceptTouchEvent(boolean disallowIntercept)

当孩子不希望这个父母及其祖先用 onInterceptTouchEvent(MotionEvent)拦截触摸事件时 onInterceptTouchEvent(MotionEvent)

void requestLayout()

当事情发生变化时调用它,这已经使这个视图的布局无效。

void scrollTo(int x, int y)

设置视图的滚动位置。

该版本还将滚动限制在我们孩子的范围内。

void setFillViewport(boolean fillViewport)

指示此滚动视图是否应扩展其内容高度以填充视口。

void setOverScrollMode(int mode)

为此视图设置过卷模式。

void setSmoothScrollingEnabled(boolean smoothScrollingEnabled)

设置是否使用箭头滚动来为其转场生成动画。

boolean shouldDelayChildPressedState()

如果应该延迟此ViewGroup的子项或后代的按下状态,则返回true。

final void smoothScrollBy(int dx, int dy)

scrollBy(int, int)一样,但可以顺利滚动而不是立即滚动。

final void smoothScrollTo(int x, int y)

scrollTo(int, int) ,但滚动而不是立即滚动。

Protected methods

int computeScrollDeltaToGetChildRectOnScreen(Rect rect)

计算要在Y方向上滚动的数量,以便在屏幕上完全显示一个矩形(或者,如果比屏幕高,至少是屏幕的第一个屏幕大小)。

int computeVerticalScrollOffset()

计算垂直滚动条拇指在水平范围内的垂直偏移量。

int computeVerticalScrollRange()

滚动视图的滚动范围是其所有子项的整体高度。

float getBottomFadingEdgeStrength()

返回底部渐变边的强度或强度。

float getTopFadingEdgeStrength()

返回顶部褪色边缘的强度或强度。

void measureChild(View child, int parentWidthMeasureSpec, int parentHeightMeasureSpec)

要求这个视图的一个孩子测量自己,同时考虑到这个视图的MeasureSpec要求和填充。

void measureChildWithMargins(View child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed)

要求这个观点的一个孩子衡量自己,同时考虑到这个观点的MeasureSpec要求以及它的填充和边距。

void onDetachedFromWindow()

这是在视图从窗口分离时调用的。

void onLayout(boolean changed, int l, int t, int r, int b)

当这个视图为每个孩子分配一个大小和位置时,从布局调用。

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。

void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY)

overScrollBy(int, int, int, int, int, int, int, int, boolean)调用以响应过度滚动操作的结果。

boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect)

当在滚动视图的儿童中寻找焦点时,需要小心一些,不要将焦点放在滚动屏幕外的东西上。

void onRestoreInstanceState(Parcelable state)

吊钩允许视图重新应用之前由 onSaveInstanceState()生成的内部状态的表示。

Parcelable onSaveInstanceState()

钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。

void onSizeChanged(int w, int h, int oldw, int oldh)

当这个视图的大小发生变化时,这在布局期间被调用。

Inherited methods

From class android.widget.FrameLayout
From class android.view.ViewGroup
From class android.view.View
From class java.lang.Object
From interface android.view.ViewParent
From interface android.view.ViewManager
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource

XML attributes

android:fillViewport

定义滚动视图是否应扩展其内容以填充视口。

必须是布尔值,可以是“ true ”或“ false ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 fillViewport

相关方法:

Public constructors

ScrollView

Added in API level 1
ScrollView (Context context)

Parameters
context Context

ScrollView

Added in API level 1
ScrollView (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

ScrollView

Added in API level 1
ScrollView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

ScrollView

Added in API level 21
ScrollView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

addView

Added in API level 1
void addView (View child, 
                int index)

添加子视图。 如果没有设置布局参数,则此子视图的默认参数设置在该子级上。

注意:不要调用此方法 draw(android.graphics.Canvas)onDraw(android.graphics.Canvas)dispatchDraw(android.graphics.Canvas)或任何相关方法。

Parameters
child View: the child view to add
index int: the position at which to add the child

addView

Added in API level 1
void addView (View child, 
                ViewGroup.LayoutParams params)

添加具有指定布局参数的子视图。

注意:不要调用此方法 draw(android.graphics.Canvas)onDraw(android.graphics.Canvas)dispatchDraw(android.graphics.Canvas)或任何相关方法。

Parameters
child View: the child view to add
params ViewGroup.LayoutParams: the layout parameters to set on the child

addView

Added in API level 1
void addView (View child, 
                int index, 
                ViewGroup.LayoutParams params)

添加具有指定布局参数的子视图。

注意:不要调用此方法 draw(android.graphics.Canvas)onDraw(android.graphics.Canvas)dispatchDraw(android.graphics.Canvas)或任何相关方法。

Parameters
child View: the child view to add
index int: the position at which to add the child or -1 to add last
params ViewGroup.LayoutParams: the layout parameters to set on the child

addView

Added in API level 1
void addView (View child)

添加子视图。 如果没有设置布局参数,则此子视图的默认参数设置在该子级上。

注意:不要调用此方法 draw(android.graphics.Canvas)onDraw(android.graphics.Canvas)dispatchDraw(android.graphics.Canvas)或任何相关方法。

Parameters
child View: the child view to add

arrowScroll

Added in API level 1
boolean arrowScroll (int direction)

响应向上或向下箭头点击处理滚动。

Parameters
direction int: The direction corresponding to the arrow key that was pressed
Returns
boolean True if we consumed the event, false otherwise

computeScroll

Added in API level 1
void computeScroll ()

由父级调用,以请求孩子在必要时更新mScrollX和mScrollY的值。 这通常会在孩子使用Scroller对象动画滚动时Scroller

dispatchKeyEvent

Added in API level 1
boolean dispatchKeyEvent (KeyEvent event)

将关键事件分派到焦点路径上的下一个视图。 此路径从视图树的顶部向下延伸到当前聚焦的视图。 如果这个观点有重点,它会发送给自己。 否则,它将沿着焦点路径调度下一个节点。 这个方法也会触发任何关键的监听器。

Parameters
event KeyEvent: The key event to be dispatched.
Returns
boolean True if the event was handled, false otherwise.

draw

Added in API level 1
void draw (Canvas canvas)

手动将此视图(及其所有子项)呈现给定的Canvas。 在调用这个函数之前,视图必须已经完成了一个完整的布局。 在实现视图时,实现onDraw(android.graphics.Canvas)而不是重写此方法。 如果您确实需要重写此方法,请调用超类版本。

Parameters
canvas Canvas: The Canvas to which the View is rendered.

executeKeyEvent

Added in API level 1
boolean executeKeyEvent (KeyEvent event)

您可以自己调用此函数以使滚动视图执行从关键事件滚动,就好像该事件已由视图层次结构分派给它一样。

Parameters
event KeyEvent: The key event to execute.
Returns
boolean Return true if the event was handled, else false.

fling

Added in API level 1
void fling (int velocityY)

滚动滚动视图

Parameters
velocityY int: The initial velocity in the Y direction. Positive numbers mean that the finger/cursor is moving down the screen, which means we want to scroll towards the top.

fullScroll

Added in API level 1
boolean fullScroll (int direction)

处理滚动以响应“家庭/结束”快捷键。 此方法将视图滚动到顶部或底部,并将焦点指向新可见区域中的最顶层/最底层组件。 如果没有组件是焦点的合适候选者,则此滚动视图回收焦点。

Parameters
direction int: the scroll direction: FOCUS_UP to go the top of the view or FOCUS_DOWN to go the bottom
Returns
boolean true if the key event is consumed by this method, false otherwise

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName

Returns
CharSequence

getMaxScrollAmount

Added in API level 1
int getMaxScrollAmount ()

Returns
int The maximum amount this scroll view will scroll in response to an arrow event.

isFillViewport

Added in API level 1
boolean isFillViewport ()

指示此ScrollView的内容是否拉伸以填充视口。

相关XML属性:

Returns
boolean True if the content fills the viewport, false otherwise.

isSmoothScrollingEnabled

Added in API level 1
boolean isSmoothScrollingEnabled ()

Returns
boolean Whether arrow scrolling will animate its transition.

onGenericMotionEvent

Added in API level 12
boolean onGenericMotionEvent (MotionEvent event)

实现此方法来处理通用运动事件。

通用运动事件描述操纵杆运动,鼠标悬停,触控板触摸,滚轮运动和其他输入事件。 动作事件的source指定了接收的输入类别。 此方法的实现必须在处理事件之前检查源中的位。 以下代码示例显示了这是如何完成的。

源类为SOURCE_CLASS_POINTER通用运动事件传递到指针下的视图。 所有其他通用运动事件都会传送到重点视图。

 public boolean onGenericMotionEvent(MotionEvent event) {
     if (event.isFromSource(InputDevice.SOURCE_CLASS_JOYSTICK)) {
         if (event.getAction() == MotionEvent.ACTION_MOVE) {
             // process the joystick movement...
             return true;
         }
     }
     if (event.isFromSource(InputDevice.SOURCE_CLASS_POINTER)) {
         switch (event.getAction()) {
             case MotionEvent.ACTION_HOVER_MOVE:
                 // process the mouse hover movement...
                 return true;
             case MotionEvent.ACTION_SCROLL:
                 // process the scroll wheel movement...
                 return true;
         }
     }
     return super.onGenericMotionEvent(event);
 }

Parameters
event MotionEvent: The generic motion event being processed.
Returns
boolean True if the event was handled, false otherwise.

onInterceptTouchEvent

Added in API level 1
boolean onInterceptTouchEvent (MotionEvent ev)

实施此方法来拦截所有触摸屏幕动作事件。 这允许您在事件发送给您的孩子时观看事件,并在任何时候掌握当前手势的所有权。

使用这个函数需要注意,因为它与View.onTouchEvent(MotionEvent)有一个相当复杂的交互,并且使用它需要以正确的方式执行该方法。 活动将按以下顺序收到:

  1. You will receive the down event here.
  2. The down event will be handled either by a child of this view group, or given to your own onTouchEvent() method to handle; this means you should implement onTouchEvent() to return true, so you will continue to see the rest of the gesture (instead of looking for a parent view to handle it). Also, by returning true from onTouchEvent(), you will not receive any following events in onInterceptTouchEvent() and all touch processing must happen in onTouchEvent() like normal.
  3. For as long as you return false from this function, each following event (up to and including the final up) will be delivered first here and then to the target's onTouchEvent().
  4. If you return true from here, you will not receive any following events: the target view will receive the same event but with the action ACTION_CANCEL, and all further events will be delivered to your onTouchEvent() method and no longer appear here.

Parameters
ev MotionEvent: The motion event being dispatched down the hierarchy.
Returns
boolean Return true to steal motion events from the children and have them dispatched to this ViewGroup through onTouchEvent(). The current target will receive an ACTION_CANCEL event, and no further messages will be delivered here.

onNestedFling

Added in API level 21
boolean onNestedFling (View target, 
                float velocityX, 
                float velocityY, 
                boolean consumed)

从嵌套滚动中请求投掷。

这种方法表示嵌套滚动的孩子已经检测到适合于一阵子的条件。 通常这意味着触摸滚动以velocity的滚动方向结束,该滚动的方向沿着可滚动的轴线满足或超过minimum fling velocity

如果嵌套的滚动子视图通常会抛出,但它位于其自己的内容的边缘,则可以使用此方法代替该嵌套的滚动父级。 父母可以有选择地消费一下,或者观察孩子的情绪。

Parameters
target View: View that initiated the nested scroll
velocityX float: Horizontal velocity in pixels per second
velocityY float: Vertical velocity in pixels per second
consumed boolean: true if the child consumed the fling, false otherwise
Returns
boolean true if this parent consumed or otherwise reacted to the fling

onNestedScroll

Added in API level 21
void onNestedScroll (View target, 
                int dxConsumed, 
                int dyConsumed, 
                int dxUnconsumed, 
                int dyUnconsumed)

反应到正在进行的嵌套滚动。

当ViewParent的当前嵌套滚动子视图调度一个嵌套滚动事件时,将调用此方法。 要接收对此方法的调用,ViewParent必须先前返回true以拨打onStartNestedScroll(View, View, int)

将滚动距离的消耗部分和未消耗部分都报告给ViewParent。 例如,实现可以选择使用消费部分来匹配或追踪多个子元素的滚动位置。 未消耗部分可用于允许连续拖动多个滚动或可拖动元素,诸如在垂直抽屉内滚动列表,其中抽屉在达到内部滚动内容的边缘时开始拖动。

Parameters
target View: The descendent view controlling the nested scroll
dxConsumed int: Horizontal scroll distance in pixels already consumed by target
dyConsumed int: Vertical scroll distance in pixels already consumed by target
dxUnconsumed int: Horizontal scroll distance in pixels not consumed by target
dyUnconsumed int: Vertical scroll distance in pixels not consumed by target

onNestedScrollAccepted

Added in API level 21
void onNestedScrollAccepted (View child, 
                View target, 
                int axes)

响应成功声明嵌套滚动操作。

此方法将在onStartNestedScroll返回true后onStartNestedScroll 它为视图及其超类为嵌套滚动执行初始配置提供了机会。 如果存在这种方法的实现,则应始终调用其超类的此方法的实现。

Parameters
child View: Direct child of this ViewParent containing target
target View: View that initiated the nested scroll
axes int: Flags consisting of SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_VERTICAL or both

onStartNestedScroll

Added in API level 21
boolean onStartNestedScroll (View child, 
                View target, 
                int nestedScrollAxes)

响应启动可嵌套滚动操作的后代视图,并在适当的情况下声明嵌套滚动操作。

该方法将被调用以响应调用startNestedScroll(int)的后代视图。 视图层次结构中的每个父级都将有机会通过返回true来响应和声明嵌套滚动操作。

ViewParent实现可能会重写此方法,以指示视图何时愿意支持即将开始的嵌套滚动操作。 如果它返回true,则在正在进行滚动操作期间,此ViewParent将成为目标视图的嵌套滚动父级。 当嵌套滚动完成后,此ViewParent将接收到对onStopNestedScroll(View)的呼叫。

Parameters
child View: Direct child of this ViewParent containing target
target View: View that initiated the nested scroll
nestedScrollAxes int: Flags consisting of SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_VERTICAL or both
Returns
boolean true if this ViewParent accepts the nested scroll operation

onStopNestedScroll

Added in API level 21
void onStopNestedScroll (View target)

反应到嵌套滚动操作结束。

在嵌套滚动操作后执行清理。 此方法将在嵌套滚动停止时调用,例如,当嵌套触摸滚动以ACTION_UPACTION_CANCEL事件结束时。 如果存在这种方法的实现,则应始终调用其超类的此方法的实现。

Parameters
target View: View that initiated the nested scroll

onTouchEvent

Added in API level 1
boolean onTouchEvent (MotionEvent ev)

实现此方法来处理触摸屏幕动作事件。

如果此方法用于检测点击操作,建议通过执行并调用performClick()来执行操作。 这将确保一致的系统行为,包括:

  • obeying click sound preferences
  • dispatching OnClickListener calls
  • handling ACTION_CLICK when accessibility features are enabled

Parameters
ev MotionEvent: The motion event.
Returns
boolean True if the event was handled, false otherwise.

pageScroll

Added in API level 1
boolean pageScroll (int direction)

响应“页面向上/向下”快捷按钮,处理滚动。 此方法将向上或向下滚动一页,并将焦点放在新可见区域的最顶层/最底层组件。 如果没有组件是焦点的合适候选者,则此滚动视图回收焦点。

Parameters
direction int: the scroll direction: FOCUS_UP to go one page up or FOCUS_DOWN to go one page down
Returns
boolean true if the key event is consumed by this method, false otherwise

requestChildFocus

Added in API level 1
void requestChildFocus (View child, 
                View focused)

当这个父母的孩子需要关注时调用

Parameters
child View: The child of this ViewParent that wants focus. This view will contain the focused view. It is not necessarily the view that actually has focus.
focused View: The view that is a descendant of child that actually has focus

requestChildRectangleOnScreen

Added in API level 1
boolean requestChildRectangleOnScreen (View child, 
                Rect rectangle, 
                boolean immediate)

当该组的小孩想要将特定矩形定位到屏幕上时调用。 ViewGroup重写这可以相信:

  • child will be a direct child of this group
  • rectangle will be in the child's content coordinates

ViewGroup s压倒一切应该维护合同:

  • nothing will change if the rectangle is already visible
  • the view port will be scrolled only just enough to make the rectangle visible
    • Parameters
      child View: The direct child making the request.
      rectangle Rect: The rectangle in the child's coordinates the child wishes to be on the screen.
      immediate boolean: True to forbid animated or delayed scrolling, false otherwise
      Returns
      boolean Whether the group scrolled to handle the operation

requestDisallowInterceptTouchEvent

Added in API level 1
void requestDisallowInterceptTouchEvent (boolean disallowIntercept)

当孩子不希望这个父母及其祖先用 onInterceptTouchEvent(MotionEvent)拦截触摸事件时 onInterceptTouchEvent(MotionEvent)

这位家长应该将此通知传递给其父母。 这位家长必须在接触期间服从这个要求(也就是说,只有在这位家长收到了或取消后才清除标志。

Parameters
disallowIntercept boolean: True if the child does not want the parent to intercept touch events.

requestLayout

Added in API level 1
void requestLayout ()

当事情发生变化时调用它,这已经使这个视图的布局无效。 这将安排视图树的布局传递。 当视图层次结构当前处于布局传递中时( isInLayout()不应该调用此视图层次结构(如果发生布局,则可以在当前布局传递结束时(然后布局将再次运行)或当前帧结束后绘制并发生下一个布局。

覆盖此方法的子类应调用超类方法以正确处理可能的布局错误请求。

scrollTo

Added in API level 1
void scrollTo (int x, 
                int y)

设置视图的滚动位置。 这将导致致电onScrollChanged(int, int, int, int) ,该视图将失效。

该版本还将滚动限制在我们孩子的范围内。

Parameters
x int: the x position to scroll to
y int: the y position to scroll to

setFillViewport

Added in API level 1
void setFillViewport (boolean fillViewport)

指示此滚动视图是否应扩展其内容高度以填充视口。

相关XML属性:

Parameters
fillViewport boolean: True to stretch the content's height to the viewport's boundaries, false otherwise.

setOverScrollMode

Added in API level 9
void setOverScrollMode (int mode)

为此视图设置过卷模式。 有效的滚动模式有OVER_SCROLL_ALWAYS (默认), OVER_SCROLL_IF_CONTENT_SCROLLS (只允许在视图内容大于容器时滚动滚动)或OVER_SCROLL_NEVER 仅当视图能够滚动时才能设置视图的滚动模式。

Parameters
mode int: The new over-scroll mode for this view.

setSmoothScrollingEnabled

Added in API level 1
void setSmoothScrollingEnabled (boolean smoothScrollingEnabled)

设置是否使用箭头滚动来为其转场生成动画。

Parameters
smoothScrollingEnabled boolean: whether arrow scrolling will animate its transition

shouldDelayChildPressedState

Added in API level 14
boolean shouldDelayChildPressedState ()

如果应该延迟此ViewGroup的子项或后代的按下状态,则返回true。 通常,这应该对可以滚动的容器(例如List)完成。 这可以防止在用户实际尝试滚动内容时出现按下状态。 出于兼容性原因,默认实现返回true。 不滚动的子类通常应该重写此方法并返回false。

Returns
boolean

smoothScrollBy

Added in API level 1
void smoothScrollBy (int dx, 
                int dy)

scrollBy(int, int) ,但滚动而不是立即滚动。

Parameters
dx int: the number of pixels to scroll by on the X axis
dy int: the number of pixels to scroll by on the Y axis

smoothScrollTo

Added in API level 1
void smoothScrollTo (int x, 
                int y)

scrollTo(int, int)一样,但可以顺利滚动而不是立即滚动。

Parameters
x int: the position where to scroll on the X axis
y int: the position where to scroll on the Y axis

Protected methods

computeScrollDeltaToGetChildRectOnScreen

Added in API level 1
int computeScrollDeltaToGetChildRectOnScreen (Rect rect)

计算要在Y方向上滚动的数量,以便在屏幕上完全显示一个矩形(或者,如果比屏幕高,至少是屏幕的第一个屏幕大小)。

Parameters
rect Rect: The rect.
Returns
int The scroll delta.

computeVerticalScrollOffset

Added in API level 1
int computeVerticalScrollOffset ()

计算垂直滚动条拇指在水平范围内的垂直偏移量。 该值用于计算滚动条轨道内的拇指位置。

范围以任意单位表示,必须与 computeVerticalScrollRange()computeVerticalScrollExtent()使用的单位相同。

默认偏移量是该视图的滚动偏移量。

Returns
int the vertical offset of the scrollbar's thumb

computeVerticalScrollRange

Added in API level 1
int computeVerticalScrollRange ()

滚动视图的滚动范围是其所有子项的整体高度。

Returns
int the total vertical range represented by the vertical scrollbar

默认范围是此视图的绘图高度。

getBottomFadingEdgeStrength

Added in API level 1
float getBottomFadingEdgeStrength ()

返回底部渐变边的强度或强度。 强度是介于0.0(无褪色)和1.0(全褪色)之间的值。 默认实现返回0.0或1.0,但两者之间没有值。 滚动发生时,子类应该重写此方法以提供更平滑的淡入淡出转换。

Returns
float the intensity of the bottom fade as a float between 0.0f and 1.0f

getTopFadingEdgeStrength

Added in API level 1
float getTopFadingEdgeStrength ()

返回顶部褪色边缘的强度或强度。 强度是介于0.0(无褪色)和1.0(全褪色)之间的值。 默认实现返回0.0或1.0,但两者之间没有值。 滚动发生时,子类应该重写此方法以提供更平滑的淡入淡出转换。

Returns
float the intensity of the top fade as a float between 0.0f and 1.0f

measureChild

Added in API level 1
void measureChild (View child, 
                int parentWidthMeasureSpec, 
                int parentHeightMeasureSpec)

要求这个视图的一个孩子测量自己,同时考虑到这个视图的MeasureSpec要求和填充。 繁重的工作由getChildMeasureSpec完成。

Parameters
child View: The child to measure
parentWidthMeasureSpec int: The width requirements for this view
parentHeightMeasureSpec int: The height requirements for this view

measureChildWithMargins

Added in API level 1
void measureChildWithMargins (View child, 
                int parentWidthMeasureSpec, 
                int widthUsed, 
                int parentHeightMeasureSpec, 
                int heightUsed)

要求这个观点的一个孩子衡量自己,同时考虑到这个观点的MeasureSpec要求以及它的填充和边距。 孩子必须拥有MarginLayoutParams这个繁重的工作是在getChildMeasureSpec中完成的。

Parameters
child View: The child to measure
parentWidthMeasureSpec int: The width requirements for this view
widthUsed int: Extra space that has been used up by the parent horizontally (possibly by other children of the parent)
parentHeightMeasureSpec int: The height requirements for this view
heightUsed int: Extra space that has been used up by the parent vertically (possibly by other children of the parent)

onDetachedFromWindow

Added in API level 1
void onDetachedFromWindow ()

这是在视图从窗口分离时调用的。 此时它不再有绘图表面。

onLayout

Added in API level 1
void onLayout (boolean changed, 
                int l, 
                int t, 
                int r, 
                int b)

当这个视图为每个孩子分配一个大小和位置时,从布局调用。 带孩子的派生类应该覆盖这个方法,并调用他们每个孩子的布局。

Parameters
changed boolean: This is a new size or position for this view
l int: Left position, relative to parent
t int: Top position, relative to parent
r int: Right position, relative to parent
b int: Bottom position, relative to parent

onMeasure

Added in API level 1
void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。 此方法由measure(int, int)调用, measure(int, int)子类覆盖以提供其内容的准确和有效的度量。

合同:覆盖此方法时, 必须致电setMeasuredDimension(int, int)来存储此视图的测量宽度和高度。 如果不这样做,将触发IllegalStateException ,由measure(int, int)引发。 调用超类' onMeasure(int, int)是一个有效的用法。

Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应该覆盖onMeasure(int, int)以提供更好的内容度量。

如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()getSuggestedMinimumWidth() )。

Parameters
widthMeasureSpec int: horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightMeasureSpec int: vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

onOverScrolled

Added in API level 9
void onOverScrolled (int scrollX, 
                int scrollY, 
                boolean clampedX, 
                boolean clampedY)

overScrollBy(int, int, int, int, int, int, int, int, boolean)调用以响应过度滚动操作的结果。

Parameters
scrollX int: New X scroll value in pixels
scrollY int: New Y scroll value in pixels
clampedX boolean: True if scrollX was clamped to an over-scroll boundary
clampedY boolean: True if scrollY was clamped to an over-scroll boundary

onRequestFocusInDescendants

Added in API level 1
boolean onRequestFocusInDescendants (int direction, 
                Rect previouslyFocusedRect)

当在滚动视图的儿童中寻找焦点时,需要小心一些,不要将焦点放在滚动屏幕外的东西上。 这比默认的ViewGroup实现更昂贵,否则此行为可能已成为默认值。

Parameters
direction int: One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT
previouslyFocusedRect Rect: The rectangle (in this View's coordinate system) to give a finer grained hint about where focus is coming from. May be null if there is no hint.
Returns
boolean Whether focus was taken.

onRestoreInstanceState

Added in API level 1
void onRestoreInstanceState (Parcelable state)

吊钩允许视图重新应用之前由onSaveInstanceState()生成的内部状态的表示。 这个函数永远不会被调用为null状态。

Parameters
state Parcelable: The frozen state that had previously been returned by onSaveInstanceState().

onSaveInstanceState

Added in API level 1
Parcelable onSaveInstanceState ()

钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。 此状态应仅包含不持久或以后不能重建的信息。 例如,您永远不会将当前位置存储在屏幕上,因为当视图的新实例放置在其视图层次结构中时会再次计算该位置。

您可能在此处存储的某些示例:文本视图中的当前光标位置(但通常不是文本本身,因为它存储在内容提供程序或其他永久性存储中),即当前在列表视图中选择的项目。

Returns
Parcelable Returns a Parcelable object containing the view's current dynamic state, or null if there is nothing interesting to save. The default implementation returns null.

onSizeChanged

Added in API level 1
void onSizeChanged (int w, 
                int h, 
                int oldw, 
                int oldh)

当这个视图的大小发生变化时,这在布局期间被调用。 如果您刚刚添加到视图层次结构中,则会使用旧值0调用。

Parameters
w int: Current width of this view.
h int: Current height of this view.
oldw int: Old width of this view.
oldh int: Old height of this view.

Hooray!