RecyclerView
public class RecyclerView extends ViewGroup implements ScrollingView, NestedScrollingChild
java.lang.Object
↳
android.view.View
↳
android.view.ViewGroup
↳
android.support.v7.widget.RecyclerView
Known Direct Subclasses
HorizontalGridView,
VerticalGridView
HorizontalGridView
显示水平滚动列表中的项目的 ViewGroup 。
VerticalGridView
显示垂直滚动列表中的项目的 ViewGroup 。
为大型数据集提供有限窗口的灵活视图。
Glossary of terms:
Adapter: A subclass of RecyclerView.Adapter responsible for providing views that represent items in a data set.
Position: The position of a data item within an Adapter.
Index: The index of an attached child view as used in a call to getChildAt(int). Contrast with Position.
Binding: The process of preparing a child view to display data corresponding to a position within the adapter.
Recycle (view): A view previously used to display data for a specific adapter position may be placed in a cache for later reuse to display the same type of data again later. This can drastically improve performance by skipping initial layout inflation or construction.
Scrap (view): A child view that has entered into a temporarily detached state during layout. Scrap views may be reused without becoming fully detached from the parent RecyclerView, either unmodified if no rebinding is required or modified by the adapter if the view was considered dirty.
Dirty (view): A child view that must be rebound by the adapter before being displayed.
Positions in RecyclerView:
RecyclerView在RecyclerView.Adapter和RecyclerView.LayoutManager之间引入了一个额外的抽象级别,以便能够在布局计算过程中检测批次中的数据集更改。 这可以让LayoutManager跟踪适配器更改以计算动画。 它还有助于提高性能,因为所有视图绑定同时发生,并且避免了不必要的绑定。
为此,RecyclerView中有两种类型的 position相关方法:
layout position: Position of an item in the latest layout calculation. This is the position from the LayoutManager's perspective.
adapter position: Position of an item in the adapter. This is the position from the Adapter's perspective.
除了调度 adapter.notify*事件和计算更新的布局之间的时间之外,这两个位置是相同的。
方法,返回或接收*LayoutPosition*的最新布局计算(例如使用位置getLayoutPosition() , findViewHolderForLayoutPosition(int) )。 这些职位包括所有更改,直到最后的布局计算。 您可以依靠这些职位与当前在屏幕上看到的用户保持一致。 例如,如果屏幕上有一个项目列表,并且用户要求第5 个元素,则应该使用这些方法,因为它们将与用户看到的内容匹配。
另一组位置相关方法的形式为*AdapterPosition* 。 (如getAdapterPosition() , findViewHolderForAdapterPosition(int) ),当你需要跟上时代的适配器的位置,即使他们可能没有被反映到尚未布局的工作,你应该使用这些方法。 例如,如果要在ViewHolder单击中访问适配器中的项目,则应使用getAdapterPosition() 。 请注意,如果已调用notifyDataSetChanged()并且尚未计算新布局,则这些方法可能无法计算适配器位置。 出于这个原因,您应该仔细处理来自这些方法的NO_POSITION或null结果。
编写 RecyclerView.LayoutManager您几乎总是要使用布局位置,而编写 RecyclerView.Adapter ,您可能需要使用适配器位置。
Summary
Nested classes
class
RecyclerView.Adapter
适配器提供从应用程序特定数据集到RecyclerView内显示的视图的RecyclerView 。
class
RecyclerView.AdapterDataObserver 观察者基类用于观察对RecyclerView.Adapter更改。
interface
RecyclerView.ChildDrawingOrderCallback 一个回调界面,可用于更改RecyclerView子项的绘制顺序。
class
RecyclerView.ItemAnimator 该类定义了在对适配器进行更改时发生在项目上的动画。
class
RecyclerView.ItemDecoration ItemDecoration允许应用程序从适配器的数据集中为特定的项目视图添加特殊的图形和布局偏移量。
class
RecyclerView.LayoutManager LayoutManager负责测量和定位RecyclerView项目视图,并确定何时回收用户不再可见的项目视图的策略。
class
RecyclerView.LayoutParams LayoutParams子类别为RecyclerView 。
interface
RecyclerView.OnChildAttachStateChangeListener 一个Listener接口,可以连接到RecylcerView以在ViewHolder连接到RecyclerView或从RecyclerView分离时得到通知。
interface
RecyclerView.OnItemTouchListener OnItemTouchListener允许应用程序在RecyclerView自身的滚动行为被视为这些触摸事件之前,在RecyclerView的视图层次结构级别拦截正在进行的触摸事件。
class
RecyclerView.OnScrollListener 当RecyclerView上发生滚动事件时,可以将OnScrollListener添加到RecyclerView中以接收消息。
class
RecyclerView.RecycledViewPool RecycledViewPool可让您在多个RecyclerView之间共享视图。
class
RecyclerView.Recycler 回收站负责管理报废或分离的物料视图以供重复使用。
interface
RecyclerView.RecyclerListener RecyclerListener可以设置在RecyclerView上,以便在视图回收时接收消息。
class
RecyclerView.SimpleOnItemTouchListener RecyclerView.OnItemTouchListener的实现具有空方法体和默认返回值。
class
RecyclerView.SmoothScroller
用于平滑滚动的基类。
class
RecyclerView.State
包含有关当前RecyclerView状态的有用信息,例如目标滚动位置或视图焦点。
class
RecyclerView.ViewCacheExtension ViewCacheExtension是一个辅助类,用于提供可由开发人员控制的额外视图缓存层。
class
RecyclerView.ViewHolder ViewHolder描述了一个项目视图和关于它在RecyclerView中的位置的元数据。
XML attributes
android.support.v7.recyclerview:layoutManager
Class name of the Layout Manager to be used.
Inherited XML attributes
From class android.view.ViewGroup
android:addStatesFromChildren
Sets whether this ViewGroup's drawable states also include its children's drawable states.
android:alwaysDrawnWithCache
Defines whether the ViewGroup should always draw its children using their drawing cache or not.
android:animateLayoutChanges
Defines whether changes in layout (caused by adding and removing items) should cause a LayoutTransition to run.
android:animationCache
Defines whether layout animations should create a drawing cache for their children.
android:clipChildren
Defines whether a child is limited to draw inside of its bounds or not.
android:clipToPadding
Defines whether the ViewGroup will clip its children and resize (but not clip) any EdgeEffect to its padding, if padding is not zero.
android:descendantFocusability
Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.
android:layoutAnimation
Defines the layout animation to use the first time the ViewGroup is laid out.
android:layoutMode
Defines the layout mode of this ViewGroup.
android:persistentDrawingCache
Defines the persistence of the drawing cache.
android:splitMotionEvents
Sets whether this ViewGroup should split MotionEvents to separate child views during touch event dispatch.
From class android.view.View
android:accessibilityLiveRegion
Indicates to accessibility services whether the user should be notified when this view changes.
android:accessibilityTraversalAfter
Sets the id of a view after which this one is visited in accessibility traversal.
android:accessibilityTraversalBefore
Sets the id of a view before which this one is visited in accessibility traversal.
android:alpha
alpha property of the view, as a value between 0 (completely transparent) and 1 (completely opaque).
android:background
A drawable to use as the background.
android:backgroundTint
Tint to apply to the background.
android:backgroundTintMode
Blending mode used to apply the background tint.
android:clickable
Defines whether this view reacts to click events.
android:contentDescription
Defines text that briefly describes content of the view.
android:contextClickable
Defines whether this view reacts to context click events.
android:drawingCacheQuality
Defines the quality of translucent drawing caches.
android:duplicateParentState
When this attribute is set to true, the view gets its drawable state (focused, pressed, etc.) from its direct parent rather than from itself.
android:elevation
base z depth of the view 必须是尺寸值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。
android:fadeScrollbars
Defines whether to fade out scrollbars when they are not in use.
android:fadingEdgeLength
Defines the length of the fading edges.
android:filterTouchesWhenObscured
Specifies whether to filter touches when the view's window is obscured by another visible window.
android:fitsSystemWindows
Boolean internal attribute to adjust view layout based on system windows such as the status bar.
android:focusable
Boolean that controls whether a view can take focus.
android:focusableInTouchMode
Boolean that controls whether a view can take focus while in touch mode.
android:forceHasOverlappingRendering
Whether this view has elements that may overlap when drawn.
android:foreground
Defines the drawable to draw over the content.
android:foregroundGravity
Defines the gravity to apply to the foreground drawable.
android:foregroundTint
Tint to apply to the foreground.
android:foregroundTintMode
Blending mode used to apply the foreground tint.
android:hapticFeedbackEnabled
Boolean that controls whether a view should have haptic feedback enabled for events such as long presses.
android:id
Supply an identifier name for this view, to later retrieve it with View.findViewById() or Activity.findViewById().
android:importantForAccessibility
Controls how this View is important for accessibility which is if it fires accessibility events and if it is reported to accessibility services that query the screen.
android:isScrollContainer
Set this if the view will serve as a scrolling container, meaning that it can be resized to shrink its overall window so that there will be space for an input method.
android:keepScreenOn
Controls whether the view's window should keep the screen on while visible.
android:layerType
Specifies the type of layer backing this view.
android:layoutDirection
Defines the direction of layout drawing.
android:longClickable
Defines whether this view reacts to long click events.
android:minHeight
Defines the minimum height of the view.
android:minWidth
Defines the minimum width of the view.
android:nextFocusDown
Defines the next view to give focus to when the next focus is FOCUS_DOWN If the reference refers to a view that does not exist or is part of a hierarchy that is invisible, a RuntimeException will result when the reference is accessed.
android:nextFocusForward
Defines the next view to give focus to when the next focus is FOCUS_FORWARD If the reference refers to a view that does not exist or is part of a hierarchy that is invisible, a RuntimeException will result when the reference is accessed.
android:nextFocusLeft
Defines the next view to give focus to when the next focus is FOCUS_LEFT.
android:nextFocusRight
Defines the next view to give focus to when the next focus is FOCUS_RIGHT If the reference refers to a view that does not exist or is part of a hierarchy that is invisible, a RuntimeException will result when the reference is accessed.
android:nextFocusUp
Defines the next view to give focus to when the next focus is FOCUS_UP If the reference refers to a view that does not exist or is part of a hierarchy that is invisible, a RuntimeException will result when the reference is accessed.
android:onClick
Name of the method in this View's context to invoke when the view is clicked.
android:padding
Sets the padding, in pixels, of all four edges.
android:paddingBottom
Sets the padding, in pixels, of the bottom edge; see padding.
android:paddingEnd
Sets the padding, in pixels, of the end edge; see padding.
android:paddingLeft
Sets the padding, in pixels, of the left edge; see padding.
android:paddingRight
Sets the padding, in pixels, of the right edge; see padding.
android:paddingStart
Sets the padding, in pixels, of the start edge; see padding.
android:paddingTop
Sets the padding, in pixels, of the top edge; see padding.
android:requiresFadingEdge
Defines which edges should be faded on scrolling.
android:rotation
rotation of the view, in degrees.
android:rotationX
rotation of the view around the x axis, in degrees.
android:rotationY
rotation of the view around the y axis, in degrees.
android:saveEnabled
If false, no state will be saved for this view when it is being frozen.
android:scaleX
scale of the view in the x direction.
android:scaleY
scale of the view in the y direction.
android:scrollIndicators
Defines which scroll indicators should be displayed when the view can be scrolled.
android:scrollX
The initial horizontal scroll offset, in pixels.
android:scrollY
The initial vertical scroll offset, in pixels.
android:scrollbarAlwaysDrawHorizontalTrack
Defines whether the horizontal scrollbar track should always be drawn.
android:scrollbarAlwaysDrawVerticalTrack
Defines whether the vertical scrollbar track should always be drawn.
android:scrollbarDefaultDelayBeforeFade
Defines the delay in milliseconds that a scrollbar waits before fade out.
android:scrollbarFadeDuration
Defines the delay in milliseconds that a scrollbar takes to fade out.
android:scrollbarSize
Sets the width of vertical scrollbars and height of horizontal scrollbars.
android:scrollbarStyle
Controls the scrollbar style and position.
android:scrollbarThumbHorizontal
Defines the horizontal scrollbar thumb drawable.
android:scrollbarThumbVertical
Defines the vertical scrollbar thumb drawable.
android:scrollbarTrackHorizontal
Defines the horizontal scrollbar track drawable.
android:scrollbarTrackVertical
Defines the vertical scrollbar track drawable.
android:scrollbars
Defines which scrollbars should be displayed on scrolling or not.
android:soundEffectsEnabled
Boolean that controls whether a view should have sound effects enabled for events such as clicking and touching.
android:stateListAnimator
Sets the state-based animator for the View.
android:tag
Supply a tag for this view containing a String, to be retrieved later with View.getTag() or searched for with View.findViewWithTag().
android:textAlignment
Defines the alignment of the text.
android:textDirection
Defines the direction of the text.
android:theme
Specifies a theme override for a view.
android:transformPivotX
x location of the pivot point around which the view will rotate and scale.
android:transformPivotY
y location of the pivot point around which the view will rotate and scale.
android:transitionName
Names a View such that it can be identified for Transitions.
android:translationX
translation in x of the view.
android:translationY
translation in y of the view.
android:translationZ
translation in z of the view.
android:visibility
Controls the initial visibility of the view.
Constants
int
HORIZONTAL
int
INVALID_TYPE
long
NO_ID
int
NO_POSITION
int
SCROLL_STATE_DRAGGING RecyclerView目前正在被外部输入如用户触摸输入拖动。
int
SCROLL_STATE_IDLE RecyclerView目前不在滚动。
int
SCROLL_STATE_SETTLING RecyclerView目前正在动画到最终位置,而不受外界控制。
int
TOUCH_SLOP_DEFAULT 常量用于 setScrollingTouchSlop(int) 。
int
TOUCH_SLOP_PAGING 常量用于 setScrollingTouchSlop(int) 。
int
VERTICAL
Inherited constants
From class android.view.ViewGroup
int
CLIP_TO_PADDING_MASK 当FLAG_CLIP_TO_PADDING和FLAG_PADDING_NOT_NULL同时设置时,我们剪裁为填充。
int
FOCUS_AFTER_DESCENDANTS 只有当它的后代都不需要它时,这个视图才会得到关注。
int
FOCUS_BEFORE_DESCENDANTS 这个观点将在它的任何后代之前得到关注。
int
FOCUS_BLOCK_DESCENDANTS 这种观点将阻止其后代的任何焦点,即使它们是可以聚焦的。
int
LAYOUT_MODE_CLIP_BOUNDS 这个常数是 layoutMode 。
int
LAYOUT_MODE_OPTICAL_BOUNDS 这个常数是 layoutMode 。
int
PERSISTENT_ALL_CACHES 用于指示所有绘图缓存应保存在内存中。
int
PERSISTENT_ANIMATION_CACHE 用于指示动画制图缓存应保存在内存中。
int
PERSISTENT_NO_CACHE 用于指示绘图缓存不应保存在内存中。
int
PERSISTENT_SCROLLING_CACHE 用于指示滚动图形缓存应保存在内存中。
From class android.view.View
int
ACCESSIBILITY_LIVE_REGION_ASSERTIVE 实时区域模式指定无障碍服务应中断正在进行的语音,以立即通告对此视图的更改。
int
ACCESSIBILITY_LIVE_REGION_NONE 实时区域模式指定无障碍服务不应该自动通告对此视图的更改。
int
ACCESSIBILITY_LIVE_REGION_POLITE 活动区域模式指定无障碍服务应该宣布对此视图的更改。
int
DRAG_FLAG_GLOBAL 指示拖动可以跨越窗口边界的标志。
int
DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION 当此标志与 DRAG_FLAG_GLOBAL_URI_READ和/或 DRAG_FLAG_GLOBAL_URI_WRITE ,URI许可授权可以在设备重启之前持续存在,直到通过 Context.revokeUriPermission明确吊销 Context.revokeUriPermission 。
int
DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION 当此标志与 DRAG_FLAG_GLOBAL_URI_READ和/或 DRAG_FLAG_GLOBAL_URI_WRITE ,URI权限授予适用于与原始授予的URI相匹配的前缀匹配的任何URI。
int
DRAG_FLAG_GLOBAL_URI_READ 当此标志与 DRAG_FLAG_GLOBAL使用时,拖动接收者将能够请求读取访问 ClipData对象中包含的内容URI。
int
DRAG_FLAG_GLOBAL_URI_WRITE 当此标志与 DRAG_FLAG_GLOBAL使用时,拖动接收方将能够请求写入访问 ClipData对象中包含的内容URI。
int
DRAG_FLAG_OPAQUE 指示拖影不透明的标志。
int
DRAWING_CACHE_QUALITY_AUTO
为绘图缓存启用自动质量模式。
int
DRAWING_CACHE_QUALITY_HIGH
为绘图缓存启用高质量模式。
int
DRAWING_CACHE_QUALITY_LOW
为绘图缓存启用低质量模式。
int
FIND_VIEWS_WITH_CONTENT_DESCRIPTION 查找包含指定内容描述的查看视图。
int
FIND_VIEWS_WITH_TEXT 查找呈现指定文本的视图。
int
FOCUSABLES_ALL 视图标志指示 addFocusables(ArrayList, int, int)是否应添加所有可聚焦视图,而不管它们是否可在触摸模式下聚焦。
int
FOCUSABLES_TOUCH_MODE 查看标志,指示 addFocusables(ArrayList, int, int)是否应仅添加在触摸模式下可聚焦的Views。
int
FOCUS_BACKWARD 与 focusSearch(int)使用。
int
FOCUS_DOWN 与 focusSearch(int)使用。
int
FOCUS_FORWARD 与 focusSearch(int)使用。
int
FOCUS_LEFT 与 focusSearch(int)使用。
int
FOCUS_RIGHT 与 focusSearch(int)使用。
int
FOCUS_UP 与 focusSearch(int)使用。
int
GONE 这个视图是不可见的,它不需要任何空间来布局。
int
HAPTIC_FEEDBACK_ENABLED 查看标志,指示这个视图是否应该为长按等事件启用触觉反馈。
int
IMPORTANT_FOR_ACCESSIBILITY_AUTO 自动确定视图对可访问性是否重要。
int
IMPORTANT_FOR_ACCESSIBILITY_NO 该视图对可访问性并不重要。
int
IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS 该视图对可访问性来说并不重要,它的任何后代视图也不重要。
int
IMPORTANT_FOR_ACCESSIBILITY_YES 该视图对可访问性非常重要。
int
INVISIBLE 这个视图是不可见的,但它仍然占用空间用于布局。
int
KEEP_SCREEN_ON 查看标志,指示屏幕应保持打开状态,同时包含此视图的窗口对用户可见。
int
LAYER_TYPE_HARDWARE
表示该视图具有硬件层。
int
LAYER_TYPE_NONE 表示该视图没有图层。
int
LAYER_TYPE_SOFTWARE
表示该视图具有软件层。
int
LAYOUT_DIRECTION_INHERIT 该视图的水平布局方向是从其父项继承的。
int
LAYOUT_DIRECTION_LOCALE 此视图的水平布局方向是从区域设置的默认语言脚本中推导出来的。
int
LAYOUT_DIRECTION_LTR 此视图的水平布局方向是从左到右。
int
LAYOUT_DIRECTION_RTL 此视图的水平布局方向是从右到左。
int
MEASURED_HEIGHT_STATE_SHIFT 的比特移位 MEASURED_STATE_MASK去的高度位为宽度和高度结合成单个int功能,例如 getMeasuredState()和的参数的ChildState resolveSizeAndState(int, int, int) 。
int
MEASURED_SIZE_MASK 提供实际测量尺寸的 getMeasuredWidthAndState()和 getMeasuredWidthAndState()位。
int
MEASURED_STATE_MASK 提供额外状态位的 getMeasuredWidthAndState()和 getMeasuredWidthAndState()位。
int
MEASURED_STATE_TOO_SMALL getMeasuredWidthAndState()和 getMeasuredWidthAndState()位表示测量的大小小于视图想要具有的空间。
int
NO_ID 用于标记没有ID的视图。
int
OVER_SCROLL_ALWAYS 始终允许用户过度滚动此视图,前提是该视图可以滚动。
int
OVER_SCROLL_IF_CONTENT_SCROLLS 只有当内容足够大时才允许用户过度滚动此视图以便进行有意义的滚动,前提是该视图可以滚动。
int
OVER_SCROLL_NEVER 切勿让用户过度滚动此视图。
int
SCREEN_STATE_OFF 表示屏幕已更改状态,现在关闭。
int
SCREEN_STATE_ON 表示屏幕已更改状态并且现在处于打开状态。
int
SCROLLBARS_INSIDE_INSET 滚动条样式显示填充区域内的滚动条,增加视图的填充。
int
SCROLLBARS_INSIDE_OVERLAY 滚动条样式在内容区域内显示滚动条,而不增加填充。
int
SCROLLBARS_OUTSIDE_INSET 滚动条样式在视图的边缘显示滚动条,增加视图的填充。
int
SCROLLBARS_OUTSIDE_OVERLAY 滚动条样式在视图边缘显示滚动条,而不增加填充。
int
SCROLLBAR_POSITION_DEFAULT 将滚动条置于系统确定的默认位置。
int
SCROLLBAR_POSITION_LEFT 沿着左边缘放置滚动条。
int
SCROLLBAR_POSITION_RIGHT 沿着右边缘放置滚动条。
int
SCROLL_AXIS_HORIZONTAL 指示沿着水平轴进行滚动。
int
SCROLL_AXIS_NONE 指示没有视图滚动。
int
SCROLL_AXIS_VERTICAL 指示沿着垂直轴进行滚动。
int
SCROLL_INDICATOR_BOTTOM 滚动指示器方向为视图底部边缘。
int
SCROLL_INDICATOR_END 滚动指示器方向为视图的结束边缘。
int
SCROLL_INDICATOR_LEFT 滚动视图左侧边缘的指示器方向。
int
SCROLL_INDICATOR_RIGHT 滚动指示器方向为视图的右边缘。
int
SCROLL_INDICATOR_START 滚动指示器方向为视图的起始边缘。
int
SCROLL_INDICATOR_TOP 滚动指示器的方向为视图的顶部边缘。
int
SOUND_EFFECTS_ENABLED 查看标志,指示该视图是否应该为点击和触摸等事件启用声音效果。
int
STATUS_BAR_HIDDEN 此常数在API级别14中已弃用。请改为使用SYSTEM_UI_FLAG_LOW_PROFILE 。
int
STATUS_BAR_VISIBLE 此常数在API级别14中已弃用。请改为使用SYSTEM_UI_FLAG_VISIBLE 。
int
SYSTEM_UI_FLAG_FULLSCREEN Flag for setSystemUiVisibility(int) :View已请求进入正常的全屏模式,以便其内容可以接管屏幕,同时仍允许用户与应用程序进行交互。
int
SYSTEM_UI_FLAG_HIDE_NAVIGATION 标记为 setSystemUiVisibility(int) :View已请求暂时隐藏系统导航。
int
SYSTEM_UI_FLAG_IMMERSIVE 标记为 setSystemUiVisibility(int) :视图想要在隐藏导航栏时保持交互,即 SYSTEM_UI_FLAG_HIDE_NAVIGATION 。
int
SYSTEM_UI_FLAG_IMMERSIVE_STICKY 旗地为 setSystemUiVisibility(int) :查看愿与隐藏状态栏时保持互动 SYSTEM_UI_FLAG_FULLSCREEN和/或隐藏导航栏 SYSTEM_UI_FLAG_HIDE_NAVIGATION 。
int
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 标记为 setSystemUiVisibility(int) :查看想要将其窗口布置为好像它已请求 SYSTEM_UI_FLAG_FULLSCREEN ,即使它现在还没有。
int
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION Flag for setSystemUiVisibility(int) :即使它现在还没有,视图也想要它的窗口被布置好,就好像它已经请求了 SYSTEM_UI_FLAG_HIDE_NAVIGATION 。
int
SYSTEM_UI_FLAG_LAYOUT_STABLE 标志为 setSystemUiVisibility(int) :使用其他布局标志时,我们希望稳定地查看 fitSystemWindows(Rect)的内容插入。
int
SYSTEM_UI_FLAG_LIGHT_STATUS_BAR 标记为 setSystemUiVisibility(int) :请求状态栏绘制与灯光状态栏背景兼容的模式。
int
SYSTEM_UI_FLAG_LOW_PROFILE 标志为 setSystemUiVisibility(int) :View已请求系统UI进入不显眼的“低调”模式。
int
SYSTEM_UI_FLAG_VISIBLE setSystemUiVisibility(int)特殊常数:View已请求系统UI(状态栏)可见(默认)。
int
SYSTEM_UI_LAYOUT_FLAGS 与系统UI相关的可能影响布局的标志。
int
TEXT_ALIGNMENT_CENTER 将段落居中,例如
int
TEXT_ALIGNMENT_GRAVITY 根视图的默认值。
int
TEXT_ALIGNMENT_INHERIT 默认文本对齐。
int
TEXT_ALIGNMENT_TEXT_END 与段落结尾对齐,例如
int
TEXT_ALIGNMENT_TEXT_START 与段落的开头对齐,例如
int
TEXT_ALIGNMENT_VIEW_END 如果视图的解析layoutDirection是LTR,则与视图的末端对齐,即ALIGN_RIGHT;否则,对齐ALIGN_LEFT。
int
TEXT_ALIGNMENT_VIEW_START 如果视图的解析layoutDirection为LTR,则与视图的开始位置对齐,即ALIGN_LEFT,否则为ALIGN_RIGHT。
int
TEXT_DIRECTION_ANY_RTL 文本方向使用“any-RTL”算法。
int
TEXT_DIRECTION_FIRST_STRONG 文本方向是使用“第一强算法”。
int
TEXT_DIRECTION_FIRST_STRONG_LTR 文本方向是使用“第一强算法”。
int
TEXT_DIRECTION_FIRST_STRONG_RTL 文本方向是使用“第一强算法”。
int
TEXT_DIRECTION_INHERIT 文字方向通过 ViewGroup继承
int
TEXT_DIRECTION_LOCALE 文本方向来自系统区域设置。
int
TEXT_DIRECTION_LTR 文字方向被强制为LTR。
int
TEXT_DIRECTION_RTL 文本方向被强制为RTL。
String
VIEW_LOG_TAG 该类使用android.util.Log所使用的日志标记。
int
VISIBLE 这个视图是可见的。
Inherited fields
From class android.view.View
public static final Property
ALPHA 围绕由 setAlpha(float)和 getAlpha()方法处理的 alpha功能的属性包装。
protected static final int[]
EMPTY_STATE_SET 指示视图没有设置状态。
protected static final int[]
ENABLED_FOCUSED_SELECTED_STATE_SET 表示视图已启用,关注和选择。
protected static final int[]
ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET 指示视图已启用,已聚焦,已选中,并且其窗口具有焦点。
protected static final int[]
ENABLED_FOCUSED_STATE_SET 表示该视图已启用且具有焦点。
protected static final int[]
ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET 表示视图已启用,重点突出,其窗口具有焦点。
protected static final int[]
ENABLED_SELECTED_STATE_SET 表示已启用并选择视图。
protected static final int[]
ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET 表示视图已启用,已选中并且其窗口具有焦点。
protected static final int[]
ENABLED_STATE_SET 表示视图已启用。
protected static final int[]
ENABLED_WINDOW_FOCUSED_STATE_SET 指示视图已启用,并且其窗口具有焦点。
protected static final int[]
FOCUSED_SELECTED_STATE_SET 表示该视图是关注和选择的。
protected static final int[]
FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET 指示视图被聚焦,被选中并且其窗口具有焦点。
protected static final int[]
FOCUSED_STATE_SET 表示该视图是重点。
protected static final int[]
FOCUSED_WINDOW_FOCUSED_STATE_SET 指示视图具有焦点并且其窗口具有焦点。
protected static final int[]
PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET 指示视图被按下,启用,关注和选择。
protected static final int[]
PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET 指示视图被按下,启用,关注,选中并且其窗口具有焦点。
protected static final int[]
PRESSED_ENABLED_FOCUSED_STATE_SET 指示视图被按下,启用和关注。
protected static final int[]
PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET 指示视图被按下,启用,关注并且其窗口具有焦点。
protected static final int[]
PRESSED_ENABLED_SELECTED_STATE_SET 指示视图被按下,启用和选择。
protected static final int[]
PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET 指示视图被按下,启用,选中并且其窗口具有焦点。
protected static final int[]
PRESSED_ENABLED_STATE_SET 指示视图被按下并启用。
protected static final int[]
PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET 指示视图被按下,启用并且其窗口具有焦点。
protected static final int[]
PRESSED_FOCUSED_SELECTED_STATE_SET 指示视图被按下,聚焦和选择。
protected static final int[]
PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET 指示视图被按下,聚焦,选中并且其窗口具有焦点。
protected static final int[]
PRESSED_FOCUSED_STATE_SET 指示视图被按下并聚焦。
protected static final int[]
PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET 指示视图被按下,聚焦并且其窗口具有焦点。
protected static final int[]
PRESSED_SELECTED_STATE_SET 指示按下并选择视图。
protected static final int[]
PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET 指示视图被按下,选中并且其窗口具有焦点。
protected static final int[]
PRESSED_STATE_SET 表示按下了视图。
protected static final int[]
PRESSED_WINDOW_FOCUSED_STATE_SET 指示按下视图并且其窗口具有焦点。
public static final Property
ROTATION 围绕由 setRotation(float)和 getRotation()方法处理的 rotation功能的属性包装。
public static final Property
ROTATION_X 围绕由 setRotationX(float)和 getRotationX()方法处理的 rotationX功能的属性包装。
public static final Property
ROTATION_Y 围绕由 setRotationY(float)和 getRotationY()方法处理的 rotationY功能的属性包装。
public static final Property
SCALE_X 围绕由 setScaleX(float)和 getScaleX()方法处理的 scaleX功能的属性包装。
public static final Property
SCALE_Y 围绕由 setScaleY(float)和 getScaleY()方法处理的 scaleY功能的属性包装。
protected static final int[]
SELECTED_STATE_SET 表示已选择视图。
protected static final int[]
SELECTED_WINDOW_FOCUSED_STATE_SET 指示已选择视图并且其窗口具有焦点。
public static final Property
TRANSLATION_X 围绕由 setTranslationX(float)和 getTranslationX()方法处理的 translationX功能的属性包装。
public static final Property
TRANSLATION_Y 有关 setTranslationY(float)和 getTranslationY()方法处理的 translationY功能的属性包装。
public static final Property
TRANSLATION_Z 围绕由 setTranslationZ(float)和 getTranslationZ()方法处理的 translationZ功能的属性包装。
protected static final int[]
WINDOW_FOCUSED_STATE_SET 指示视图的窗口具有焦点。
public static final Property
X 围绕由 setX(float)和 getX()方法处理的 x功能的属性包装。
public static final Property
Y 有关 setY(float)和 getY()方法处理的 y功能的属性包装。
public static final Property
Z 围绕由 setZ(float)和 getZ()方法处理的 z功能的属性包装。
Public constructors
RecyclerView(Context context)
RecyclerView(Context context, AttributeSet attrs)
RecyclerView(Context context, AttributeSet attrs, int defStyle)
Public methods
void
addFocusables(ArrayList
void
addItemDecoration(RecyclerView.ItemDecoration decor) 添加一个 RecyclerView.ItemDecoration到这个RecyclerView。
void
addItemDecoration(RecyclerView.ItemDecoration decor, int index) 添加一个 RecyclerView.ItemDecoration到这个RecyclerView。
void
addOnChildAttachStateChangeListener(RecyclerView.OnChildAttachStateChangeListener listener) 注册一个监听器,当子视图连接到RecyclerView或从RecyclerView分离时,将会收到通知。
void
addOnItemTouchListener(RecyclerView.OnItemTouchListener listener) 添加 RecyclerView.OnItemTouchListener以在将触发事件分派到子视图或此视图的标准滚动行为之前拦截触摸事件。
void
addOnScrollListener(RecyclerView.OnScrollListener listener) 添加一个侦听器,将会通知任何滚动状态或位置的变化。
void
clearOnChildAttachStateChangeListeners() 删除通过 addOnChildAttachStateChangeListener(OnChildAttachStateChangeListener)添加的所有侦听 addOnChildAttachStateChangeListener(OnChildAttachStateChangeListener) 。
void
clearOnScrollListeners() 移除已通知滚动状态或位置发生任何更改的所有辅助侦听器。
int
computeHorizontalScrollExtent()
计算水平滚动条拇指在水平范围内的水平范围。
int
computeHorizontalScrollOffset()
计算水平滚动条拇指在水平范围内的水平偏移量。
int
computeHorizontalScrollRange()
计算水平滚动条代表的水平范围。
int
computeVerticalScrollExtent()
计算垂直滚动条拇指在垂直范围内的垂直范围。
int
computeVerticalScrollOffset()
计算垂直滚动条拇指在垂直范围内的垂直偏移量。
int
computeVerticalScrollRange()
计算垂直滚动条代表的垂直范围。
boolean
dispatchNestedFling(float velocityX, float velocityY, boolean consumed) 向嵌套滚动父级派发一个投掷。
boolean
dispatchNestedPreFling(float velocityX, float velocityY) 在此视图处理它之前,将嵌套分派给嵌套的滚动父级。
boolean
dispatchNestedPreScroll(int dx, int dy, int[] consumed, int[] offsetInWindow) 在该视图消耗其任何部分之前,调度正在进行的嵌套滚动的一个步骤。
boolean
dispatchNestedScroll(int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int[] offsetInWindow) 发送正在进行的嵌套滚动的一个步骤。
void
draw(Canvas c) 手动将此视图(及其所有子项)呈现给定的Canvas。
boolean
drawChild(Canvas canvas, View child, long drawingTime) 绘制这个视图组的一个孩子。
View
findChildViewUnder(float x, float y) 找到给定点下的最顶层视图。
View
findContainingItemView(View view) 遍历给定视图的祖先,并返回包含它的项目视图,也是RecyclerView的直接子视图。
RecyclerView.ViewHolder
findContainingViewHolder(View view) 返回包含给定视图的ViewHolder。
RecyclerView.ViewHolder
findViewHolderForAdapterPosition(int position) 返回数据集给定位置的项目的ViewHolder。
RecyclerView.ViewHolder
findViewHolderForItemId(long id) 返回具有给定ID的项目的ViewHolder。
RecyclerView.ViewHolder
findViewHolderForLayoutPosition(int position) 返回数据集中给定位置的项目的ViewHolder,从最新的布局阶段开始。
RecyclerView.ViewHolder
findViewHolderForPosition(int position) 此方法已弃用。 使用findViewHolderForLayoutPosition(int)或findViewHolderForAdapterPosition(int)
boolean
fling(int velocityX, int velocityY) 以每秒像素为单位,以每个轴的初始速度开始标准投掷。
View
focusSearch(View focused, int direction) 由于RecyclerView是一个包含虚拟子项(包含在适配器中但在用户界面中不可见的项目)的ViewGroup集合,因此它采用了与其他ViewGroup不同的更加涉及的焦点搜索策略。
ViewGroup.LayoutParams
generateLayoutParams(AttributeSet attrs) 根据提供的属性集返回一组新的布局参数。
Adapter
getAdapter() 检索先前设置的适配器;如果未设置适配器,则返回null。
int
getBaseline()
将RecyclerView文本基线的偏移量从其顶部边界返回。
int
getChildAdapterPosition(View child) 返回给定子视图对应的适配器位置。
long
getChildItemId(View child) 返回给定子视图对应的稳定项目标识。
int
getChildLayoutPosition(View child) 返回给定子视图的适配器位置以及最近完成的布局传递。
int
getChildPosition(View child) 此方法已弃用。 请使用getChildAdapterPosition(View)或getChildLayoutPosition(View) 。
RecyclerView.ViewHolder
getChildViewHolder(View child) 检索给 RecyclerView.ViewHolder视图的 RecyclerView.ViewHolder 。
RecyclerViewAccessibilityDelegate
getCompatAccessibilityDelegate() 返回RecyclerView使用的可访问性委托兼容性实现。
RecyclerView.ItemAnimator
getItemAnimator() 获取此RecyclerView的当前ItemAnimator。
RecyclerView.LayoutManager
getLayoutManager() 返回目前负责此RecyclerView布局策略的 RecyclerView.LayoutManager 。
int
getMaxFlingVelocity() 返回此RecyclerView使用的最大投掷速度。
int
getMinFlingVelocity() 返回启动投掷的最低速度。
boolean
getPreserveFocusAfterLayout() 如果RecyclerView应该尝试保留当前聚焦的Adapter Item的焦点,即使在布局计算期间替换表示Item的View也会返回true。
RecyclerView.RecycledViewPool
getRecycledViewPool() 检索这个RecyclerView的 RecyclerView.RecycledViewPool 。
int
getScrollState() 返回RecyclerView的当前滚动状态。
boolean
hasFixedSize()
boolean
hasNestedScrollingParent() 如果此视图具有嵌套滚动父级,则返回true。
boolean
hasPendingAdapterUpdates() 返回是否有尚未应用于布局的待定适配器更新。
void
invalidateItemDecorations() 使所有ItemDecorations无效。
boolean
isAnimating() 如果RecyclerView当前正在运行一些动画,则返回true。
boolean
isAttachedToWindow() 如果RecyclerView附加到窗口,则返回true。
boolean
isComputingLayout() 返回RecyclerView是否正在计算布局。
boolean
isLayoutFrozen() 如果布局和滚动被冻结,则返回true。
boolean
isNestedScrollingEnabled() 如果对此视图启用嵌套滚动,则返回true。
void
offsetChildrenHorizontal(int dx) 将所有子视图的边界偏移 dx像素。
void
offsetChildrenVertical(int dy) 将所有子视图的边界偏移 dy像素。
void
onChildAttachedToWindow(View child) 在项目视图附加到此RecyclerView时调用。
void
onChildDetachedFromWindow(View child) 在从此RecyclerView分离项目视图时调用。
void
onDraw(Canvas c) 实施这个来做你的绘画。
boolean
onGenericMotionEvent(MotionEvent event) 实现此方法来处理通用运动事件。
boolean
onInterceptTouchEvent(MotionEvent e) 实施此方法来拦截所有触摸屏幕动作事件。
void
onScrollStateChanged(int state) 当此RecyclerView的滚动状态改变时调用。
void
onScrolled(int dx, int dy) 当此RecyclerView的滚动位置改变时调用。
boolean
onTouchEvent(MotionEvent e) 实现此方法来处理触摸屏幕动作事件。
void
removeItemDecoration(RecyclerView.ItemDecoration decor) 从此RecyclerView中删除 RecyclerView.ItemDecoration 。
void
removeOnChildAttachStateChangeListener(RecyclerView.OnChildAttachStateChangeListener listener) 从附加子状态侦听器列表中删除提供的侦听器。
void
removeOnItemTouchListener(RecyclerView.OnItemTouchListener listener) 删除 RecyclerView.OnItemTouchListener 。
void
removeOnScrollListener(RecyclerView.OnScrollListener listener) 移除已通知滚动状态或位置发生任何更改的侦听器。
void
requestChildFocus(View child, View focused) 当这个父母的孩子需要关注时调用
boolean
requestChildRectangleOnScreen(View child, Rect rect, boolean immediate) 当该组的小孩想要将特定矩形定位到屏幕上时调用。
void
requestDisallowInterceptTouchEvent(boolean disallowIntercept) 当孩子不希望这个父母及其祖先用 onInterceptTouchEvent(MotionEvent)拦截触摸事件时 onInterceptTouchEvent(MotionEvent) 。
void
requestLayout() 当事情发生变化时调用它,这已经使这个视图的布局无效。
void
scrollBy(int x, int y) 移动视图的滚动位置。
void
scrollTo(int x, int y) 设置视图的滚动位置。
void
scrollToPosition(int position) 便捷方法滚动到某个位置。
void
sendAccessibilityEventUnchecked(AccessibilityEvent event) 此方法的行为与 sendAccessibilityEvent(int)完全相同,但其参数为空 AccessibilityEvent ,并且不执行检查是否启用辅助功能。
void
setAccessibilityDelegateCompat(RecyclerViewAccessibilityDelegate accessibilityDelegate) 设置RecyclerView使用的可访问性委托兼容性实现。
void
setAdapter(Adapter adapter) 设置新的适配器以按需提供子视图。
void
setChildDrawingOrderCallback(RecyclerView.ChildDrawingOrderCallback childDrawingOrderCallback) 设置用于绘制儿童的 RecyclerView.ChildDrawingOrderCallback 。
void
setClipToPadding(boolean clipToPadding) 设置此ViewGroup是否将其子对象填充到其填充中,并将存在填充的任何EdgeEffect调整大小(但不剪切)到填充区域。
void
setHasFixedSize(boolean hasFixedSize) 如果RecyclerView可以预先知道RecyclerView的大小不受适配器内容的影响,它可以执行多次优化。
void
setItemAnimator(RecyclerView.ItemAnimator animator) 设置将处理动画的 RecyclerView.ItemAnimator ,这些动画涉及对此RecyclerView中项目的更改。
void
setItemViewCacheSize(int size) 在将它们添加到可能共享的 recycled view pool之前,设置要保留的屏幕外视图的数量。
void
setLayoutFrozen(boolean frozen) 启用或禁用布局和滚动。
void
setLayoutManager(RecyclerView.LayoutManager layout) 设置该RecyclerView将使用的 RecyclerView.LayoutManager 。
void
setNestedScrollingEnabled(boolean enabled) 启用或禁用此视图的嵌套滚动。
void
setOnScrollListener(RecyclerView.OnScrollListener listener) 此方法已弃用。 使用addOnScrollListener(OnScrollListener)和removeOnScrollListener(OnScrollListener)
void
setPreserveFocusAfterLayout(boolean preserveFocusAfterLayout) 设置RecyclerView是否应该尝试在布局计算之后保留相同的项目。
void
setRecycledViewPool(RecyclerView.RecycledViewPool pool) 回收视图池允许多个RecyclerView共享一个公共的废料视图池。
void
setRecyclerListener(RecyclerView.RecyclerListener listener) 注册一个侦听器,每当子视图被回收时都会被通知。
void
setScrollingTouchSlop(int slopConstant) 为特定用例配置滚动触摸边框。
void
setViewCacheExtension(RecyclerView.ViewCacheExtension extension) 设置一个新的 RecyclerView.ViewCacheExtension由Recycler使用。
void
smoothScrollBy(int dx, int dy) 沿任一轴按给定数量的像素动画滚动。
void
smoothScrollToPosition(int position) 开始平滑滚动到适配器位置。
boolean
startNestedScroll(int axes) 沿给定轴开始可嵌套滚动操作。
void
stopNestedScroll() 停止正在进行的嵌套滚动。
void
stopScroll() 停止正在进行的任何当前滚动,例如由 smoothScrollBy(int, int)开始的 fling(int, int)或由触摸发起的 fling(int, int) 。
void
swapAdapter(Adapter adapter, boolean removeAndRecycleExistingViews) 用提供的交换机替换当前的适配器。
Protected methods
boolean
checkLayoutParams(ViewGroup.LayoutParams p)
void
dispatchRestoreInstanceState(SparseArray
void
dispatchSaveInstanceState(SparseArray
ViewGroup.LayoutParams
generateDefaultLayoutParams() 返回一组默认布局参数。
ViewGroup.LayoutParams
generateLayoutParams(ViewGroup.LayoutParams p) 根据提供的布局参数返回一组安全的布局参数。
int
getChildDrawingOrder(int childCount, int i) 返回为此迭代绘制的子的索引。
void
onAttachedToWindow() 这在视图附加到窗口时被调用。
void
onDetachedFromWindow() 这是在视图从窗口分离时调用的。
void
onLayout(boolean changed, int l, int t, int r, int b) 当这个视图为每个孩子分配一个大小和位置时,从布局调用。
void
onMeasure(int widthSpec, int heightSpec)
测量视图及其内容以确定测量宽度和测量高度。
boolean
onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) 找一个后裔打电话给 requestFocus() 。
void
onRestoreInstanceState(Parcelable state) 吊钩允许视图重新应用先前由 onSaveInstanceState()生成的内部状态的表示。
Parcelable
onSaveInstanceState() 钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。
void
onSizeChanged(int w, int h, int oldw, int oldh) 当这个视图的大小发生变化时,这在布局期间被调用。
void
removeDetachedView(View child, boolean animate) 完成删除分离的视图。
Inherited methods
From class android.view.ViewGroup
void
addChildrenForAccessibility(ArrayList
void
addFocusables(ArrayList
boolean
addStatesFromChildren() 返回此ViewGroup的可绘制状态是否也包含其子项的可绘制状态。
void
addTouchables(ArrayList
void
addView(View child, ViewGroup.LayoutParams params) 添加具有指定布局参数的子视图。
void
addView(View child, int index) 添加子视图。
void
addView(View child, int index, ViewGroup.LayoutParams params) 添加具有指定布局参数的子视图。
void
addView(View child)
添加子视图。
void
addView(View child, int width, int height) 使用此ViewGroup的默认布局参数和指定的宽度和高度添加子视图。
boolean
addViewInLayout(View child, int index, ViewGroup.LayoutParams params, boolean preventRequestLayout) 在布局中添加视图。
boolean
addViewInLayout(View child, int index, ViewGroup.LayoutParams params) 在布局中添加视图。
void
attachLayoutAnimationParameters(View child, ViewGroup.LayoutParams params, int index, int count) 子类应该重写此方法以在提供的子级上设置布局动画参数。
void
attachViewToParent(View child, int index, ViewGroup.LayoutParams params) 将视图附加到此视图组。
void
bringChildToFront(View child) 更改孩子的z顺序,使其位于所有其他孩子的顶部。
boolean
canAnimate() 指示视图组是否能够在第一个布局之后为其子项设置动画。
boolean
checkLayoutParams(ViewGroup.LayoutParams p)
void
childDrawableStateChanged(View child) 如果 addStatesFromChildren()为true,则刷新该组的可绘制状态(以包含来自子项的状态)。
void
childHasTransientStateChanged(View child, boolean childHasTransientState) 当子视图发生变化时调用,无论它是否跟踪瞬态。
void
cleanupLayoutState(View child) 防止在下一个布局过程中指定的子级布局。
void
clearChildFocus(View child) 当该父母的一个孩子放弃焦点时调用
void
clearDisappearingChildren() 删除已删除的视图的任何待定动画。
void
clearFocus() 当这个观点想要放弃焦点时调用。
void
debug(int depth) 在日志输出中打印有关此视图的信息,标签为 VIEW_LOG_TAG 。
void
detachAllViewsFromParent() 从父项分离所有视图。
void
detachViewFromParent(int index) 从其父项分离视图。
void
detachViewFromParent(View child) 从其父项分离视图。
void
detachViewsFromParent(int start, int count) 从父母那里分离出一系列的观点。
WindowInsets
dispatchApplyWindowInsets(WindowInsets insets) 请求将给定的窗口插件应用于此视图或其子视图中的其他视图。
void
dispatchConfigurationChanged(Configuration newConfig) 在视图层次结构下分发有关资源配置更改的通知。
void
dispatchDisplayHint(int hint) 发出是否显示此视图的提示。
boolean
dispatchDragEvent(DragEvent event) 检测此视图是否已启用并具有拖动事件侦听器。
void
dispatchDraw(Canvas canvas) 通过绘制来绘制子视图。
void
dispatchDrawableHotspotChanged(float x, float y) 将可绘制的热点更改分派到满足以下至少一个条件的子视图:
Returns false from both isClickable() and isLongClickable()
Requests duplication of parent state via setDuplicateParentStateEnabled(boolean)
void
dispatchFreezeSelfOnly(SparseArray
boolean
dispatchGenericFocusedEvent(MotionEvent event) 将通用运动事件分派给当前的焦点视图。
boolean
dispatchGenericPointerEvent(MotionEvent event) 将通用运动事件分配给第一个指针下的视图。
boolean
dispatchHoverEvent(MotionEvent event) 发送悬停事件。
boolean
dispatchKeyEvent(KeyEvent event) 将关键事件分派到焦点路径上的下一个视图。
boolean
dispatchKeyEventPreIme(KeyEvent event) 在与视图层次关联的任何输入方法处理关键事件之前分派关键事件。
boolean
dispatchKeyShortcutEvent(KeyEvent event) 分派键快捷键事件。
void
dispatchProvideStructure(ViewStructure structure) 在层次结构中分派创建 ViewStructure 。
void
dispatchRestoreInstanceState(SparseArray
void
dispatchSaveInstanceState(SparseArray
void
dispatchSetActivated(boolean activated) 派发setActivated给所有这个View的孩子。
void
dispatchSetPressed(boolean pressed) 派发setPressed给所有这个View的孩子。
void
dispatchSetSelected(boolean selected) 调度setSelected选择到所有这个View的孩子。
void
dispatchSystemUiVisibilityChanged(int visible) 在视图层次结构中分派回调到 setOnSystemUiVisibilityChangeListener(View.OnSystemUiVisibilityChangeListener) 。
void
dispatchThawSelfOnly(SparseArray
boolean
dispatchTouchEvent(MotionEvent ev) 将触摸屏动作事件向下传递给目标视图,或者将此视图作为目标。
boolean
dispatchTrackballEvent(MotionEvent event) 将轨迹球运动事件传递给焦点视图。
boolean
dispatchUnhandledMove(View focused, int direction) 此方法是聚焦视图及其祖先响应箭头键的最后机会。
void
dispatchVisibilityChanged(View changedView, int visibility) 向视图层次结构分派视图可见性更改。
void
dispatchWindowFocusChanged(boolean hasFocus) 当包含此视图的窗口获得或失去窗口焦点时调用。
void
dispatchWindowSystemUiVisiblityChanged(int visible) 向视图层次结构下调回调到 onWindowSystemUiVisibilityChanged(int) 。
void
dispatchWindowVisibilityChanged(int visibility) 向视图层次结构中分派窗口可见性更改。
boolean
drawChild(Canvas canvas, View child, long drawingTime) 绘制这个视图组的一个孩子。
void
drawableStateChanged() 只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。
void
endViewTransition(View view) 此方法应始终在先前调用 startViewTransition(View)调用。
View
findFocus() 在当前拥有焦点的此视图中植根的层次结构中查找视图。
void
findViewsWithText(ArrayList
View
focusSearch(View focused, int direction) 在指定的方向查找想要聚焦的最近视图。
void
focusableViewAvailable(View v) 告诉家长,新的可调焦视图已经可用。
boolean
gatherTransparentRegion(Region region) 当视图层次结构包含一个或多个SurfaceView时,RootView将使用它来执行优化。
ViewGroup.LayoutParams
generateDefaultLayoutParams() 返回一组默认布局参数。
ViewGroup.LayoutParams
generateLayoutParams(AttributeSet attrs) 根据提供的属性集返回一组新的布局参数。
ViewGroup.LayoutParams
generateLayoutParams(ViewGroup.LayoutParams p) 根据提供的布局参数返回一组安全的布局参数。
CharSequence
getAccessibilityClassName() 返回此对象的类名称以用于辅助功能。
View
getChildAt(int index) 返回组中指定位置的视图。
int
getChildCount() 返回组中的子女数量。
int
getChildDrawingOrder(int childCount, int i) 返回为此迭代绘制的子的索引。
static int
getChildMeasureSpec(int spec, int padding, int childDimension) measureChildren的难点在于:搞清楚MeasureSpec传递给特定的孩子。
boolean
getChildStaticTransformation(View child, Transformation t) 将 t设置为子级的静态转换,如果设置,则返回布尔值以指示是否设置了静态转换。
boolean
getChildVisibleRect(View child, Rect r, Point offset) 计算根据子视图坐标定义的矩形区域的可见部分。
boolean
getClipChildren() 返回绘制前是否将该组的子项剪切到其边界。
boolean
getClipToPadding() 返回此ViewGroup是否将其子项剪裁为其填充,并且如果存在填充,则将任何EdgeEffect调整大小(但不剪切)到填充区域。
int
getDescendantFocusability() 获取此视图组的后代可聚焦性。
View
getFocusedChild() 返回此视图的重点子项(如果有)。
LayoutAnimationController
getLayoutAnimation() 返回用于动画组的子节点的布局动画控制器。
Animation.AnimationListener
getLayoutAnimationListener() 返回布局动画事件发送到的动画侦听器。
int
getLayoutMode() 返回此ViewGroup布局操作期间的对齐基础: LAYOUT_MODE_CLIP_BOUNDS或 LAYOUT_MODE_OPTICAL_BOUNDS 。
LayoutTransition
getLayoutTransition() 获取此ViewGroup的LayoutTransition对象。
int
getNestedScrollAxes() 返回此ViewGroup的嵌套滚动的当前轴。
ViewGroupOverlay
getOverlay() 返回此视图组的ViewGroupOverlay,如果它尚不存在,则创建它。
int
getPersistentDrawingCache() 返回一个整数,指示将哪些类型的绘图缓存保存在内存中。
boolean
getTouchscreenBlocksFocus() 检查此ViewGroup是否应忽略本身及其子项的焦点请求。
boolean
hasFocus() 如果此视图具有或包含焦点,则返回true
boolean
hasFocusable() 如果此视图是可聚焦的,或者它包含可访问的View,其中 hasFocusable()返回true, hasFocusable()返回true。
boolean
hasTransientState() 指示视图当前是否跟踪暂时状态,即应用程序不需要关心保存和还原,但是框架应该特别注意在可能的情况下保留。
int
indexOfChild(View child) 返回指定子视图的组中的位置。
final void
invalidateChild(View child, Rect dirty) 不要调用或重写此方法。
ViewParent
invalidateChildInParent(int[] location, Rect dirty) 不要调用或重写此方法。
boolean
isAlwaysDrawnWithCacheEnabled() 此方法在API级别23中已弃用。从M ,此属性将被忽略。 子视图可能不再允许父母禁用其缓存行为。
boolean
isAnimationCacheEnabled() 此方法在API级别23中已弃用。从M ,此属性将被忽略。 儿童的缓存行为可以通过setLayerType(int, Paint)进行控制。
boolean
isChildrenDrawingOrderEnabled() 指示ViewGroup是否按照 getChildDrawingOrder(int, int)定义的顺序绘制其子 getChildDrawingOrder(int, int) 。
boolean
isChildrenDrawnWithCacheEnabled() 此方法在API级别23中已弃用。从M ,此属性将被忽略。 子视图可能不再被父母强制缓存渲染状态。 setLayerType(int, Paint)在个别视图上使用setLayerType(int, Paint) 。
boolean
isMotionEventSplittingEnabled() 如果派发到此ViewGroup的MotionEvent可以分割为多个子项,则返回true。
boolean
isTransitionGroup() 如果在执行活动转换时应将此ViewGroup视为要删除的单个实体,则返回true。
void
jumpDrawablesToCurrentState() 在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState() 。
final void
layout(int l, int t, int r, int b) 为视图及其所有后代指定大小和位置
这是布局机制的第二阶段。
void
measureChild(View child, int parentWidthMeasureSpec, int parentHeightMeasureSpec) 要求这个视图的一个孩子测量自己,同时考虑到这个视图的MeasureSpec要求和填充。
void
measureChildWithMargins(View child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed) 要求这个观点的一个孩子衡量自己,同时考虑到这个观点的MeasureSpec要求以及它的填充和边距。
void
measureChildren(int widthMeasureSpec, int heightMeasureSpec) 要求所有这个视图的孩子测量自己,同时考虑到这个视图的MeasureSpec要求和填充。
void
notifySubtreeAccessibilityStateChanged(View child, View source, int changeType) 通知视图父级其子元素的可访问性状态已发生变化,并且子树的结构不同。
final void
offsetDescendantRectToMyCoords(View descendant, Rect rect) 将位于后代坐标空间中的矩形偏移到我们的坐标空间中。
final void
offsetRectIntoDescendantCoords(View descendant, Rect rect) 将坐标空间中的矩形偏移到祖先的坐标空间中。
void
onAttachedToWindow() 这在视图附加到窗口时被调用。
int[]
onCreateDrawableState(int extraSpace) 为此视图生成新的 Drawable状态。
void
onDetachedFromWindow() 这是在视图从窗口分离时调用的。
boolean
onInterceptHoverEvent(MotionEvent event) 实现此方法以在由子视图处理悬停事件之前拦截悬停事件。
boolean
onInterceptTouchEvent(MotionEvent ev) 实施此方法来拦截所有触摸屏幕动作事件。
abstract void
onLayout(boolean changed, int l, int t, int r, int b) 当这个视图为每个孩子分配一个大小和位置时,从布局调用。
boolean
onNestedFling(View target, float velocityX, float velocityY, boolean consumed) 从嵌套滚动中请求投掷。
boolean
onNestedPreFling(View target, float velocityX, float velocityY) 在目标视图消耗它之前,将其反应为嵌套的拖动。
boolean
onNestedPrePerformAccessibilityAction(View target, int action, Bundle args) 在目标进程处理之前,响应由目标后代视图委托的可访问性操作。
子类应始终调用 super.onNestedPrePerformAccessibilityAction
void
onNestedPreScroll(View target, int dx, int dy, int[] consumed) 在目标视图占用滚动的一部分之前,对正在进行的嵌套滚动进行处理。
void
onNestedScroll(View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) 反应到正在进行的嵌套滚动。
void
onNestedScrollAccepted(View child, View target, int axes) 响应成功声明嵌套滚动操作。
boolean
onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) 寻找一个后裔打电话 requestFocus() 。
boolean
onRequestSendAccessibilityEvent(View child, AccessibilityEvent event) 当一个孩子要求发送一个 AccessibilityEvent并给它的父母机会来增加事件时 AccessibilityEvent 。
PointerIcon
onResolvePointerIcon(MotionEvent event, int pointerIndex) 返回运动事件的指针图标;如果未指定图标,则返回null。
boolean
onStartNestedScroll(View child, View target, int nestedScrollAxes) 响应启动可嵌套滚动操作的后代视图,并在适当的情况下声明嵌套滚动操作。
void
onStopNestedScroll(View child) 反应到嵌套滚动操作结束。
void
onViewAdded(View child) 当新的孩子被添加到这个ViewGroup时调用。
void
onViewRemoved(View child) 当从此ViewGroup中移除子视图时调用。
void
recomputeViewAttributes(View child) 告诉视图层次结构,需要重新评估全局视图属性。
void
removeAllViews() 调用此方法从ViewGroup中删除所有子视图。
void
removeAllViewsInLayout() 由ViewGroup子类调用以从其自身中删除子视图时,它必须首先知道其屏幕大小,然后才能计算它将呈现多少个子视图。
void
removeDetachedView(View child, boolean animate) 完成删除分离的视图。
void
removeView(View view)
注意:不要调用此方法 draw(android.graphics.Canvas) , onDraw(android.graphics.Canvas) , dispatchDraw(android.graphics.Canvas)或任何相关方法。
void
removeViewAt(int index) 删除组中指定位置的视图。
void
removeViewInLayout(View view) 在布局过程中删除视图。
void
removeViews(int start, int count) 从组中删除指定范围的视图。
void
removeViewsInLayout(int start, int count) 在布局过程中删除一系列视图。
void
requestChildFocus(View child, View focused) 当这个父母的孩子需要关注时调用
boolean
requestChildRectangleOnScreen(View child, Rect rectangle, boolean immediate) 当该组的小孩想要将特定矩形定位到屏幕上时调用。
void
requestDisallowInterceptTouchEvent(boolean disallowIntercept) 当孩子不希望这个父母及其祖先用 onInterceptTouchEvent(MotionEvent)截获触摸事件时 onInterceptTouchEvent(MotionEvent) 。
boolean
requestFocus(int direction, Rect previouslyFocusedRect) 调用此方法可试图将焦点放在特定视图或其后面的某个子视图上,并提供关于焦点来自的方向和特定矩形的提示。 寻找一个观点,重点关注getDescendantFocusability()指定的设置。
boolean
requestSendAccessibilityEvent(View child, AccessibilityEvent event) 由小孩打电话要求其父母发送 AccessibilityEvent 。
void
requestTransparentRegion(View child) 当孩子希望视图层次结构收集并向窗口合成器报告透明区域时调用。
void
scheduleLayoutAnimation() 计划布局动画在该视图组的下一个布局通过后播放。
void
setAddStatesFromChildren(boolean addsStates) 设置此ViewGroup的可绘制状态是否也包含其子项的可绘制状态。
void
setAlwaysDrawnWithCacheEnabled(boolean always) 此方法在API级别23中已弃用。从M ,此属性将被忽略。 子视图可能不再允许父母禁用其缓存行为。
void
setAnimationCacheEnabled(boolean enabled) 此方法在API级别23中已弃用。从M ,此属性将被忽略。 儿童的缓存行为可以通过setLayerType(int, Paint)来控制。
void
setChildrenDrawingCacheEnabled(boolean enabled) 为此视图组的每个子项启用或禁用绘图缓存。
void
setChildrenDrawingOrderEnabled(boolean enabled) 告诉ViewGroup是否按照方法 getChildDrawingOrder(int, int)定义的顺序绘制子 getChildDrawingOrder(int, int) 。
void
setChildrenDrawnWithCacheEnabled(boolean enabled) 此方法在API级别23中已弃用。从M ,此属性将被忽略。 子视图可能不再被父母强制缓存渲染状态。 setLayerType(int, Paint)在个别视图上使用setLayerType(int, Paint) 。
void
setClipChildren(boolean clipChildren) 默认情况下,在绘制之前,儿童将被剪裁到其边界。
void
setClipToPadding(boolean clipToPadding) 设置此ViewGroup是否将其子对象填充到其填充中,并将存在填充的任何EdgeEffect调整大小(但不剪切)到填充区域。
void
setDescendantFocusability(int focusability) 设置此视图组的后代可聚焦性。
void
setLayoutAnimation(LayoutAnimationController controller) 设置用于在第一个布局之后为组的子项设置动画效果的布局动画控制器。
void
setLayoutAnimationListener(Animation.AnimationListener animationListener) 指定必须向其发送布局动画事件的动画侦听器。
void
setLayoutMode(int layoutMode) 设置此ViewGroup布局过程中的对齐基础。
void
setLayoutTransition(LayoutTransition transition) 为此ViewGroup设置LayoutTransition对象。
void
setMotionEventSplittingEnabled(boolean split) 在触摸事件分派期间启用或禁用将MotionEvents分割为多个子项。
void
setOnHierarchyChangeListener(ViewGroup.OnHierarchyChangeListener listener) 当一个孩子被添加到这个视图或从这个视图中删除时注册一个回调被调用。
void
setPersistentDrawingCache(int drawingCacheToKeep) 指示创建后应将哪些类型的绘图缓存保留在内存中。
void
setStaticTransformationsEnabled(boolean enabled) 当此属性设置为true时,此ViewGroup支持儿童的静态转换; 这会导致getChildStaticTransformation(View, android.view.animation.Transformation)在孩子被绘制时被调用。
void
setTouchscreenBlocksFocus(boolean touchscreenBlocksFocus) 设置此ViewGroup是否应忽略本身及其子项的焦点请求。
void
setTransitionGroup(boolean isTransitionGroup) 在活动转换期间更改是否应该将此ViewGroup视为单个实体。
boolean
shouldDelayChildPressedState() 如果应该延迟此ViewGroup的子项或后代的按下状态,则返回true。
boolean
showContextMenuForChild(View originalView, float x, float y) 显示指定视图或其祖先的上下文菜单,该上下文菜单被锚定到指定的视图相对坐标。
boolean
showContextMenuForChild(View originalView) 显示指定视图或其祖先的上下文菜单。
ActionMode
startActionModeForChild(View originalView, ActionMode.Callback callback, int type) 为指定视图启动特定类型的操作模式。
ActionMode
startActionModeForChild(View originalView, ActionMode.Callback callback) 启动默认类型为 TYPE_PRIMARY的指定视图的操作模式。
void
startLayoutAnimation() 运行布局动画。
void
startViewTransition(View view) 此方法告诉ViewGroup,即使ViewGroup已从其父项中移除,应将ViewGroup作为其父项的给定View对象应保留(在ViewGroup绘制其子项时重新显示)。
void
updateViewLayout(View view, ViewGroup.LayoutParams params)
From class android.view.View
void
addChildrenForAccessibility(ArrayList
void
addFocusables(ArrayList
void
addFocusables(ArrayList
void
addOnAttachStateChangeListener(View.OnAttachStateChangeListener listener) 为附加状态更改添加一个侦听器。
void
addOnLayoutChangeListener(View.OnLayoutChangeListener listener) 添加一个监听器,当由于布局处理而导致视图边界发生更改时将会调用该监听器。
void
addTouchables(ArrayList
ViewPropertyAnimator
animate() 此方法返回一个ViewPropertyAnimator对象,该对象可用于为此视图上的特定属性设置动画。
void
announceForAccessibility(CharSequence text) 发送 TYPE_ANNOUNCEMENT AccessibilityEvent以发布与某种上下文更改有关的通知的便捷方法,其中没有任何代表UI过渡的事件很适合。
boolean
awakenScrollBars(int startDelay, boolean invalidate)
触发滚动条绘制。
boolean
awakenScrollBars(int startDelay)
触发滚动条绘制。
boolean
awakenScrollBars()
触发滚动条绘制。
void
bringToFront() 在树中更改视图的z顺序,使其位于其他兄弟视图的顶部。
void
buildDrawingCache(boolean autoScale)
如果图纸缓存无效,则强制绘图缓存生成。
void
buildDrawingCache()
调用此方法相当于调用 buildDrawingCache(false) 。
void
buildLayer() 强制创建此视图的图层,并将此视图渲染到其图层中。
boolean
callOnClick() 直接调用任何附加的OnClickListener。
boolean
canResolveLayoutDirection() 检查布局方向分辨率是否可以完成。
boolean
canResolveTextAlignment() 检查文本对齐分辨率是否可以完成。
boolean
canResolveTextDirection() 检查文本方向分辨率是否可以完成。
boolean
canScrollHorizontally(int direction) 检查此视图是否可以在某个方向上水平滚动。
boolean
canScrollVertically(int direction) 检查该视图是否可以在某个方向上垂直滚动。
final void
cancelDragAndDrop() 取消正在进行的拖放操作。
void
cancelLongPress() 取消待处理的长按。
final void
cancelPendingInputEvents() 取消之前发布到事件队列的任何延迟高级输入事件。
boolean
checkInputConnectionProxy(View view) 当一个不是当前输入连接目标的视图试图在管理器上打电话时,由 InputMethodManager调用。
void
clearAnimation() 取消此视图的任何动画。
void
clearFocus() 当这个观点想要放弃焦点时调用。
static int
combineMeasuredStates(int curState, int newState) 合并两个状态,由 getMeasuredState()返回。
int
computeHorizontalScrollExtent()
计算水平滚动条拇指在水平范围内的水平范围。
int
computeHorizontalScrollOffset()
计算水平滚动条拇指在水平范围内的水平偏移量。
int
computeHorizontalScrollRange()
计算水平滚动条代表的水平范围。
void
computeScroll() 由父级调用,以请求孩子在必要时更新mScrollX和mScrollY的值。
WindowInsets
computeSystemWindowInsets(WindowInsets in, Rect outLocalInsets) 计算应该由这个视图消耗的插入和应该传播给它下面的插入。
int
computeVerticalScrollExtent()
计算垂直滚动条拇指在垂直范围内的垂直范围。
int
computeVerticalScrollOffset()
计算垂直滚动条拇指在水平范围内的垂直偏移量。
int
computeVerticalScrollRange()
计算垂直滚动条代表的垂直范围。
AccessibilityNodeInfo
createAccessibilityNodeInfo() 从 AccessibilityNodeInfo的角度返回代表此视图的 AccessibilityService 。
void
createContextMenu(ContextMenu menu) 显示该视图的上下文菜单。
void
destroyDrawingCache()
释放绘图缓存使用的资源。
WindowInsets
dispatchApplyWindowInsets(WindowInsets insets) 请求将给定的窗口插件应用于此视图或其子视图中的其他视图。
void
dispatchConfigurationChanged(Configuration newConfig) 在视图层次结构下分发有关资源配置更改的通知。
void
dispatchDisplayHint(int hint) 发出是否显示此视图的提示。
boolean
dispatchDragEvent(DragEvent event) 检测此视图是否已启用并具有拖动事件侦听器。
void
dispatchDraw(Canvas canvas) 通过绘制来绘制子视图。
void
dispatchDrawableHotspotChanged(float x, float y) 将drawableHotspotChanged分发给所有此View的子项。
void
dispatchFinishTemporaryDetach() 如果这是一个容器视图,则向此视图及其直接子视图派发 onFinishTemporaryDetach() 。
boolean
dispatchGenericFocusedEvent(MotionEvent event) 将通用运动事件分派给当前的焦点视图。
boolean
dispatchGenericMotionEvent(MotionEvent event) 派遣一般运动事件。
boolean
dispatchGenericPointerEvent(MotionEvent event) 将通用运动事件分配给第一个指针下的视图。
boolean
dispatchHoverEvent(MotionEvent event) 发送悬停事件。
boolean
dispatchKeyEvent(KeyEvent event) 将关键事件分派到焦点路径上的下一个视图。
boolean
dispatchKeyEventPreIme(KeyEvent event) 在与视图层次关联的任何输入方法处理关键事件之前分派关键事件。
boolean
dispatchKeyShortcutEvent(KeyEvent event) 分派键快捷键事件。
boolean
dispatchNestedFling(float velocityX, float velocityY, boolean consumed) 向嵌套滚动父级派发一个投掷。
boolean
dispatchNestedPreFling(float velocityX, float velocityY) 在此视图处理它之前,将嵌套分派给嵌套的滚动父级。
boolean
dispatchNestedPrePerformAccessibilityAction(int action, Bundle arguments) 向委托处理的此视图的父母报告辅助功能操作。
boolean
dispatchNestedPreScroll(int dx, int dy, int[] consumed, int[] offsetInWindow) 在该视图消耗其任何部分之前,调度正在进行的嵌套滚动的一个步骤。
boolean
dispatchNestedScroll(int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int[] offsetInWindow) 发送正在进行的嵌套滚动的一个步骤。
boolean
dispatchPopulateAccessibilityEvent(AccessibilityEvent event) 首先将 AccessibilityEvent给 View ,然后分配给其子项以将其文本内容添加到事件中。
void
dispatchProvideStructure(ViewStructure structure) 在层次结构中分派创建 ViewStructure 。
void
dispatchRestoreInstanceState(SparseArray
void
dispatchSaveInstanceState(SparseArray
void
dispatchSetActivated(boolean activated) 派发setActivated给所有这个View的孩子。
void
dispatchSetPressed(boolean pressed) 派发setPressed给所有这个View的孩子。
void
dispatchSetSelected(boolean selected) 调度setSelected选择到所有这个View的孩子。
void
dispatchStartTemporaryDetach() 如果这是一个容器视图,则将此视图及其直接子视图发送给此视图 onStartTemporaryDetach() 。
void
dispatchSystemUiVisibilityChanged(int visibility) 向视图层次结构调度回调到 setOnSystemUiVisibilityChangeListener(View.OnSystemUiVisibilityChangeListener) 。
boolean
dispatchTouchEvent(MotionEvent event) 将触摸屏动作事件向下传递给目标视图,或者将此视图作为目标。
boolean
dispatchTrackballEvent(MotionEvent event) 将轨迹球运动事件传递给焦点视图。
boolean
dispatchUnhandledMove(View focused, int direction) 此方法是聚焦视图及其祖先响应箭头键的最后机会。
void
dispatchVisibilityChanged(View changedView, int visibility) 向视图层次结构分派视图可见性更改。
void
dispatchWindowFocusChanged(boolean hasFocus) 当包含此视图的窗口获得或失去窗口焦点时调用。
void
dispatchWindowSystemUiVisiblityChanged(int visible) 向视图层次结构调度回调到 onWindowSystemUiVisibilityChanged(int) 。
void
dispatchWindowVisibilityChanged(int visibility) 向视图层次结构中分派窗口可见性更改。
void
draw(Canvas canvas) 手动将此视图(及其所有子项)呈现给定的Canvas。
void
drawableHotspotChanged(float x, float y) 只要视图热点更改并需要将其传播到视图管理的可绘制视图或子视图,就会调用此函数。
void
drawableStateChanged() 只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。
View
findFocus() 在当前拥有焦点的此视图中植根的层次结构中查找视图。
final View
findViewById(int id) 使用给定的ID查找子视图。
final View
findViewWithTag(Object tag) 用给定的标签查找子视图。
void
findViewsWithText(ArrayList
boolean
fitSystemWindows(Rect insets) 此方法在API级别20中已弃用。从API 20开始,使用dispatchApplyWindowInsets(WindowInsets)将insets应用于视图。 视图应覆盖onApplyWindowInsets(WindowInsets)或使用setOnApplyWindowInsetsListener(android.view.View.OnApplyWindowInsetsListener)来实现处理自己的setOnApplyWindowInsetsListener(android.view.View.OnApplyWindowInsetsListener) 。
View
focusSearch(int direction) 在指定的方向上查找可以聚焦的最近的视图。
void
forceHasOverlappingRendering(boolean hasOverlappingRendering) 设置此视图重叠渲染的行为(有关此行为的更多详细信息,请参阅 hasOverlappingRendering() )。
void
forceLayout() 强制该视图在下一个布局过程中布置。
static int
generateViewId() 生成一个适用于 setId(int)的值。
CharSequence
getAccessibilityClassName() 返回此对象的类名称以用于辅助功能。
int
getAccessibilityLiveRegion() 获取此视图的实时区域模式。
AccessibilityNodeProvider
getAccessibilityNodeProvider() 获取用于管理以此视图为根的虚拟视图层次结构的提供者,并报告探索窗口内容的 AccessibilityService 。
int
getAccessibilityTraversalAfter() 获取视图的ID,之后在可访问性遍历中访问此视图的ID。
int
getAccessibilityTraversalBefore() 获取在可访问性遍历中访问此视图之前的视图的ID。
float
getAlpha() 视图的不透明度。
Animation
getAnimation() 获取当前与此视图关联的动画。
IBinder
getApplicationWindowToken() 检索标识该视图所附窗口的顶层“真实”窗口的唯一令牌。
Drawable
getBackground() 获取可绘制的背景
ColorStateList
getBackgroundTintList() 如果指定,返回应用于背景可绘制的色调。
PorterDuff.Mode
getBackgroundTintMode() 如果指定,则返回用于将色调应用于背景可绘制的混合模式。
int
getBaseline()
从小部件的顶部边界返回小部件文本基线的偏移量。
final int
getBottom() 此视图的底部位置相对于其父项。
float
getBottomFadingEdgeStrength() 返回底部渐变边的强度或强度。
int
getBottomPaddingOffset() 扩展底部衰落区域的数量。
float
getCameraDistance() 获取沿着Z轴从相机到该视图的距离。
boolean
getClipBounds(Rect outRect) 填充的输出矩形视图的剪辑范围,返回 true如果成功或 false如果视图的剪辑范围是 null 。
Rect
getClipBounds() 返回当前的 clipBounds的副本。
final boolean
getClipToOutline() 返回是否应该使用大纲剪辑视图的内容。
CharSequence
getContentDescription() 返回 View的内容描述。
final Context
getContext() 返回视图运行的上下文,通过它可以访问当前主题,资源等。
ContextMenu.ContextMenuInfo
getContextMenuInfo() 视图应该实现这个,如果他们有额外的信息与上下文菜单相关联。
static int
getDefaultSize(int size, int measureSpec) 实用程序返回默认大小。
Display
getDisplay() 获取视图的窗口已附加到的逻辑显示。
final int[]
getDrawableState() 返回表示视图当前状态的可绘制状态的资源ID数组。
Bitmap
getDrawingCache()
调用此方法相当于调用 getDrawingCache(false) 。
Bitmap
getDrawingCache(boolean autoScale)
返回缓存此视图图形的位图。
int
getDrawingCacheBackgroundColor()
int
getDrawingCacheQuality() 返回绘图缓存的质量。
void
getDrawingRect(Rect outRect) 返回视图的可见绘图边界。
long
getDrawingTime()
返回开始绘制视图层次结构的时间。
float
getElevation() 此视图相对于其父项的基础高程,以像素为单位。
boolean
getFilterTouchesWhenObscured() 当视图的窗口被另一个可见窗口遮挡时,获取框架是否应放弃触摸。
boolean
getFitsSystemWindows() 检查状态 setFitsSystemWindows(boolean) 。
ArrayList
getFocusables(int direction) 查找并返回这个视图的后代的所有可聚焦视图,如果它本身是可聚焦的,则可能包括此视图。
void
getFocusedRect(Rect r) 当视图具有焦点并且用户离开它时,从该方法填充的矩形开始搜索下一个视图。
Drawable
getForeground() 返回用作此视图前景的绘图。
int
getForegroundGravity() 描述前景如何定位。
ColorStateList
getForegroundTintList() 如果指定,则返回应用于可绘制前景的色调。
PorterDuff.Mode
getForegroundTintMode() 如果指定,将用于应用色调的混合模式返回到可绘制的前景。
final boolean
getGlobalVisibleRect(Rect r)
boolean
getGlobalVisibleRect(Rect r, Point globalOffset) 如果这个视图的某个部分没有被父节点的任何部分剪切掉,那么用r全局(根)坐标返回该区域。
Handler
getHandler()
final boolean
getHasOverlappingRendering() 返回内部使用的重叠渲染值。
final int
getHeight() 返回视图的高度。
void
getHitRect(Rect outRect) 在父坐标中点击矩形
int
getHorizontalFadingEdgeLength() 返回用于指示此视图中更多内容可见的水平渐变边的大小。
int
getHorizontalScrollbarHeight() 返回水平滚动条的高度。
int
getId() 返回此视图的标识符。
int
getImportantForAccessibility() 获取用于确定此视图是否对可访问性很重要的模式,即是否触发辅助功能事件并将其报告给查询屏幕的辅助功能服务。
boolean
getKeepScreenOn() 返回屏幕是否应保持打开,对应于当前值 KEEP_SCREEN_ON 。
KeyEvent.DispatcherState
getKeyDispatcherState() 为此视图的窗口返回全局 KeyEvent.DispatcherState 。
int
getLabelFor() 获取视图的id,此视图用作可访问性标签。
int
getLayerType() 指示当前与此视图关联的图层类型。
int
getLayoutDirection() 返回此视图的已解析布局方向。
ViewGroup.LayoutParams
getLayoutParams() 获取与此视图关联的LayoutParams。
final int
getLeft() 此视图相对于其父项的左侧位置。
float
getLeftFadingEdgeStrength() 返回左边渐变边的强度或强度。
int
getLeftPaddingOffset() 扩展左衰落区域的量。
final boolean
getLocalVisibleRect(Rect r)
void
getLocationInWindow(int[] outLocation)
在其窗口中计算此视图的坐标。
void
getLocationOnScreen(int[] outLocation)
计算屏幕上该视图的坐标。
Matrix
getMatrix() 该视图的变换矩阵,根据当前的旋转,缩放和透视属性进行计算。
final int
getMeasuredHeight() 像 getMeasuredHeightAndState()一样,但只返回原始宽度分量(即结果被 MEASURED_SIZE_MASK屏蔽)。
final int
getMeasuredHeightAndState() 按照最近致电 measure(int, int)计算结果,返回此视图的全高度测量信息。
final int
getMeasuredState() 只返回状态位 getMeasuredWidthAndState()和 getMeasuredHeightAndState() ,合并为一个整数。
final int
getMeasuredWidth() 像 getMeasuredWidthAndState()一样,但只返回原始宽度组件(即结果被 MEASURED_SIZE_MASK屏蔽)。
final int
getMeasuredWidthAndState() 按照最近致电 measure(int, int)计算,返回该视图的全宽度测量信息。
int
getMinimumHeight() 返回视图的最小高度。
int
getMinimumWidth() 返回视图的最小宽度。
int
getNextFocusDownId() 获取下一个焦点为 FOCUS_DOWN时使用的视图的ID。
int
getNextFocusForwardId() 获取下一个焦点为 FOCUS_FORWARD时要使用的视图的ID。
int
getNextFocusLeftId() 获取下一个焦点为 FOCUS_LEFT时要使用的视图的ID。
int
getNextFocusRightId() 获取下一个焦点为 FOCUS_RIGHT时要使用的视图的ID。
int
getNextFocusUpId() 获取下一个焦点为 FOCUS_UP时使用的视图的ID。
View.OnFocusChangeListener
getOnFocusChangeListener() 返回为此视图注册的焦点更改回调。
ViewOutlineProvider
getOutlineProvider() 返回视图的当前 ViewOutlineProvider ,该视图生成定义其投射阴影形状的Outline,并启用轮廓剪切。
int
getOverScrollMode() 返回此视图的过卷模式。
ViewOverlay
getOverlay() 返回此视图的叠加层,如果它尚不存在,则创建它。
int
getPaddingBottom() 返回此视图的底部填充。
int
getPaddingEnd() 根据解析后的布局方向返回此视图的结尾填充。
int
getPaddingLeft() 返回此视图的左侧填充。
int
getPaddingRight() 返回此视图的正确填充。
int
getPaddingStart() 根据解析的布局方向返回此视图的开始填充。
int
getPaddingTop() 返回此视图的顶部填充。
final ViewParent
getParent() 获取此视图的父级。
ViewParent
getParentForAccessibility() 获取父级的可访问性。
float
getPivotX() 视图为 rotated和 scaled的点的x位置。
float
getPivotY() 视图为 rotated和 scaled的点的y位置。
PointerIcon
getPointerIcon() 获取当前视图的指针图标。
Resources
getResources() 返回与此视图关联的资源。
final int
getRight() 此视图相对于其父项的正确位置。
float
getRightFadingEdgeStrength() 返回右边褪色边缘的强度或强度。
int
getRightPaddingOffset() 扩展正确衰落区域的数量。
View
getRootView()
在当前视图层次结构中查找最顶层的视图。
WindowInsets
getRootWindowInsets() 提供调度到视图层次结构的原始WindowInsets。
float
getRotation() 视图围绕枢轴点旋转的角度。
float
getRotationX() 视图围绕通过枢轴点的水平轴旋转的角度。
float
getRotationY() 视图围绕通过枢轴点的垂直轴旋转的角度。
float
getScaleX() 视图以x为中心在视点的未缩放宽度中的比例绕x轴缩放。
float
getScaleY() 视图在y轴周围缩放的数量,作为视图未缩放高度的一部分。
int
getScrollBarDefaultDelayBeforeFade() 返回滚动条淡入之前的延迟。
int
getScrollBarFadeDuration() 返回滚动条淡入时间。
int
getScrollBarSize() 返回滚动条大小。
int
getScrollBarStyle()
返回当前的滚动条样式。
int
getScrollIndicators() 返回表示启用的滚动指示符的位掩码。
final int
getScrollX() 返回此视图的滚动左侧位置。
final int
getScrollY() 返回此视图的滚动顶部位置。
int
getSolidColor() 如果已知视图始终在纯色背景上绘制,并需要绘制渐变边缘,则覆盖此视图。
StateListAnimator
getStateListAnimator() 如果存在,则返回当前的StateListAnimator。
int
getSuggestedMinimumHeight() 返回视图应该使用的建议最小高度。
int
getSuggestedMinimumWidth() 返回视图应该使用的建议最小宽度。
int
getSystemUiVisibility() 返回此视图请求的最后 setSystemUiVisibility(int) 。
Object
getTag() 返回此视图的标记。
Object
getTag(int key) 返回与此视图和指定键相关联的标记。
int
getTextAlignment() 返回已解析的文本对齐。
int
getTextDirection() 返回已解析的文本方向。
final int
getTop() 此视图相对于其父项的顶部位置。
float
getTopFadingEdgeStrength() 返回顶部褪色边缘的强度或强度。
int
getTopPaddingOffset() 扩大最大衰落区域的数量。
TouchDelegate
getTouchDelegate() 获取此视图的TouchDelegate。
ArrayList
getTouchables() 查找并返回所有这个视图后代的可触摸视图,如果它可以自己触摸,可能会包含此视图。
String
getTransitionName() 返回用于在转换中标识视图的视图的名称。
float
getTranslationX() 此视图的水平位置相对于其 left位置。
float
getTranslationY() 此视图的垂直位置相对于其 top位置。
float
getTranslationZ() 该视图的深度位置相对于其 elevation 。
int
getVerticalFadingEdgeLength() 返回用于指示此视图中更多内容可见的垂直渐变边的大小。
int
getVerticalScrollbarPosition()
int
getVerticalScrollbarWidth() 返回垂直滚动条的宽度。
ViewTreeObserver
getViewTreeObserver() 返回此视图层次结构的ViewTreeObserver。
int
getVisibility() 返回此视图的可见性状态。
final int
getWidth() 返回你的视图的宽度。
int
getWindowAttachCount()
WindowId
getWindowId() 检索此视图当前附加到的窗口的 WindowId 。
int
getWindowSystemUiVisibility() 返回当前为整个窗口设置的系统UI可见性。
IBinder
getWindowToken() 检索标识该视图附加到的窗口的唯一标记。
int
getWindowVisibility() 返回此视图被附接到(或者窗口的当前可见性 GONE , INVISIBLE ,或 VISIBLE )。
void
getWindowVisibleDisplayFrame(Rect outRect) 检索此视图附加到的窗口的总体可见显示大小已定位。
float
getX() 此视图的视觉x位置,以像素为单位。
float
getY() 此视图的视觉y位置(以像素为单位)。
float
getZ() 此视图的可视z位置,以像素为单位。
boolean
hasFocus() 如果此视图具有焦点本身,或者是具有焦点的视图的祖先,则返回true。
boolean
hasFocusable() 如果此视图是可聚焦的,或者它包含可访问的View, hasFocusable()返回true,其中 hasFocusable()返回true。
boolean
hasNestedScrollingParent() 如果此视图具有嵌套滚动父级,则返回true。
boolean
hasOnClickListeners() 返回此视图是否具有附加的OnClickListener。
boolean
hasOverlappingRendering() 返回此视图是否包含重叠的内容。
boolean
hasTransientState() 指示视图当前是否跟踪暂时状态,即应用程序不需要关心保存和还原,但是框架应该特别注意在可能的情况下保留。
boolean
hasWindowFocus() 如果此视图位于当前具有窗口焦点的窗口中,则返回true。
static View
inflate(Context context, int resource, ViewGroup root) 从XML资源膨胀一个视图。
void
invalidate() 使整个视图无效。
void
invalidate(Rect dirty) 将由脏定义的区域标记为需要绘制。
void
invalidate(int l, int t, int r, int b) 将由矩形(l,t,r,b)定义的区域标记为需要绘制。
void
invalidateDrawable(Drawable drawable) 使指定的Drawable无效。
void
invalidateOutline() 被称为从 outline provider重建此视图的大纲
boolean
isAccessibilityFocused() 返回此视图是否以可访问性为重点。
boolean
isActivated() 指示此视图的激活状态。
boolean
isAttachedToWindow() 如果此视图当前附加到窗口,则返回true。
boolean
isClickable() 指示此视图是否对点击事件做出反应。
boolean
isContextClickable() 指示此视图是否对上下文点击作出反应。
boolean
isDirty() 如果此视图自上次绘制以来发生更改,则为真。
boolean
isDrawingCacheEnabled()
指示是否为此视图启用图形缓存。
boolean
isDuplicateParentStateEnabled()
指示这是否从其父项复制其可绘制状态。
boolean
isEnabled() 返回此视图的启用状态。
final boolean
isFocusable() 返回此视图是否能够获得焦点。
final boolean
isFocusableInTouchMode() 当视图可以聚焦时,它可能不想在触摸模式下进行聚焦。
boolean
isFocused() 如果此视图具有焦点,则返回true
boolean
isHapticFeedbackEnabled()
boolean
isHardwareAccelerated()
指示此视图是否附加到硬件加速窗口。
boolean
isHorizontalFadingEdgeEnabled()
指示水平滚动视图时水平边缘是否淡化。
boolean
isHorizontalScrollBarEnabled()
指示是否绘制水平滚动条。
boolean
isHovered() 如果视图当前处于悬停状态,则返回true。
boolean
isImportantForAccessibility() 计算是否应该公开此视图以获取可访问性。
boolean
isInEditMode() 指示此视图当前是否处于编辑模式。
boolean
isInLayout() 返回视图层次结构当前是否正在进行布局传递。
boolean
isInTouchMode() 返回设备当前是否处于触摸模式。
boolean
isLaidOut() 如果此视图自上次连接到窗口或从窗口分离后至少经历了一个布局,则返回true。
boolean
isLayoutDirectionResolved()
boolean
isLayoutRequested()
指示是否在下一个层次结构布局过程中请求此视图的布局。
boolean
isLongClickable() 指示此视图是否对长按事件作出反应。
boolean
isNestedScrollingEnabled() 如果对此视图启用嵌套滚动,则返回true。
boolean
isOpaque() 指示此视图是否不透明。
boolean
isPaddingOffsetRequired() 如果视图在其填充内绘制内容并启用淡化边缘,则需要支持填充偏移。
boolean
isPaddingRelative() 如果通过相对值 setPaddingRelative(int, int, int, int)或通过设置了填充,则返回
boolean
isPressed() 指示视图当前是否处于按下状态。
boolean
isSaveEnabled() 指示此视图是否将保存其状态(即,是否调用它的方法 onSaveInstanceState() )。
boolean
isSaveFromParentEnabled() 指示当从父级发生状态保存遍历时,此视图下的整个层次结构是否将保存其状态。
boolean
isScrollContainer() 指示此视图是否是其窗口中的一组可滚动容器。
boolean
isScrollbarFadingEnabled() 当该视图不滚动时,如果滚动条将淡出,则返回true
boolean
isSelected() 指示此视图的选择状态。
boolean
isShown() 返回此视图及其所有祖先的可见性
boolean
isSoundEffectsEnabled()
final boolean
isTemporarilyDetached()
boolean
isTextAlignmentResolved()
boolean
isTextDirectionResolved()
boolean
isVerticalFadingEdgeEnabled()
指示当视图水平滚动时垂直边缘是否渐变。
boolean
isVerticalScrollBarEnabled()
指示是否应绘制垂直滚动条。
void
jumpDrawablesToCurrentState() 在与此视图关联的所有可绘制对象上调用 Drawable.jumpToCurrentState() 。
void
layout(int l, int t, int r, int b) 为视图及其所有后代指定大小和位置
这是布局机制的第二阶段。
final void
measure(int widthMeasureSpec, int heightMeasureSpec)
这被称为找出多大的观点应该是。
static int[]
mergeDrawableStates(int[] baseState, int[] additionalState) 将 additionalState中的自己的状态值合并到由 onCreateDrawableState(int)返回的基本状态值 baseState中。
void
offsetLeftAndRight(int offset) 按指定的像素数量偏移此视图的水平位置。
void
offsetTopAndBottom(int offset) 将此视图的垂直位置偏移指定的像素数。
void
onAnimationEnd() 由父ViewGroup调用,以通知当前与此视图关联的动画结束。
void
onAnimationStart() 由父ViewGroup调用以通知当前与此视图关联的动画的开始。
WindowInsets
onApplyWindowInsets(WindowInsets insets) 根据其内部政策,视图应适用 WindowInsets时调用。
void
onAttachedToWindow() 这在视图附加到窗口时被调用。
void
onCancelPendingInputEvents() 在此视图或父视图上调用 cancelPendingInputEvents()的结果。
boolean
onCheckIsTextEditor() 检查被调用的视图是否是文本编辑器,在这种情况下,为其自动显示软输入窗口是有意义的。
void
onConfigurationChanged(Configuration newConfig) 当应用程序使用的资源的当前配置发生更改时调用。
void
onCreateContextMenu(ContextMenu menu) 如果视图本身要将项目添加到上下文菜单,则视图应该执行此操作。
int[]
onCreateDrawableState(int extraSpace) 为此视图生成新的 Drawable状态。
InputConnection
onCreateInputConnection(EditorInfo outAttrs) 为InputMethod创建一个新的InputConnection以与视图交互。
void
onDetachedFromWindow() 这是在视图从窗口分离时调用的。
void
onDisplayHint(int hint) 给出这个观点暗示是否显示。
boolean
onDragEvent(DragEvent event) 在调用 startDragAndDrop()之后,处理由系统发送的拖动事件。
void
onDraw(Canvas canvas) 实施这个来做你的绘画。
void
onDrawForeground(Canvas canvas) 为此视图绘制任何前景内容。
final void
onDrawScrollBars(Canvas canvas)
请求水平和垂直滚动条的绘制。
boolean
onFilterTouchEventForSecurity(MotionEvent event) 过滤触摸事件以应用安全策略。
void
onFinishInflate() 最终确定从XML扩展视图。
void
onFinishTemporaryDetach() 当容器完成更改视图后,调用 onStartTemporaryDetach() 。
void
onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) 当视图的焦点状态改变时,由视图系统调用。
boolean
onGenericMotionEvent(MotionEvent event) 实现此方法来处理通用运动事件。
void
onHoverChanged(boolean hovered) 实现此方法来处理悬停状态更改。
boolean
onHoverEvent(MotionEvent event) 实现此方法来处理悬停事件。
void
onInitializeAccessibilityEvent(AccessibilityEvent event) 使用有关此View的信息初始化 AccessibilityEvent ,这是事件源。
void
onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) 使用关于此视图的信息初始化 AccessibilityNodeInfo 。
boolean
onKeyDown(int keyCode, KeyEvent event) KeyEvent.Callback.onKeyDown()默认实现:当 KEYCODE_DPAD_CENTER或 KEYCODE_ENTER被释放时,如果视图被启用并且可点击,则执行按下视图。
boolean
onKeyLongPress(int keyCode, KeyEvent event) KeyEvent.Callback.onKeyLongPress()默认实现:始终返回false(不处理事件)。
boolean
onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) KeyEvent.Callback.onKeyMultiple()默认实现:始终返回false(不处理事件)。
boolean
onKeyPreIme(int keyCode, KeyEvent event) 在关键事件由与视图层次关联的任何输入方法处理之前处理。
boolean
onKeyShortcut(int keyCode, KeyEvent event) 在未处理按键快捷方式事件时调用聚焦视图。
boolean
onKeyUp(int keyCode, KeyEvent event) 的默认实现 KeyEvent.Callback.onKeyUp() :当视图进行点击 KEYCODE_DPAD_CENTER , KEYCODE_ENTER或者 KEYCODE_SPACE被释放。
void
onLayout(boolean changed, int left, int top, int right, int bottom) 当这个视图为每个孩子分配一个大小和位置时,从布局调用。
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)调用以响应过度滚动操作的结果。
void
onPopulateAccessibilityEvent(AccessibilityEvent event) 从 dispatchPopulateAccessibilityEvent(AccessibilityEvent)调用给这个视图的机会来填充可访问性事件及其文本内容。
void
onProvideStructure(ViewStructure structure) 作为 Activity.onProvideAssistData一部分从视图中检索辅助结构时调用。
void
onProvideVirtualStructure(ViewStructure structure) 当从视图中检索辅助结构作为 Activity.onProvideAssistData一部分 Activity.onProvideAssistData以在此视图下生成其他虚拟结构时调用。
PointerIcon
onResolvePointerIcon(MotionEvent event, int pointerIndex) 返回运动事件的指针图标;如果未指定图标,则返回null。
void
onRestoreInstanceState(Parcelable state) 吊钩允许视图重新应用先前由 onSaveInstanceState()生成的内部状态的表示。
void
onRtlPropertiesChanged(int layoutDirection) 当任何RTL属性(布局方向或文本方向或文本对齐)已被更改时调用。
Parcelable
onSaveInstanceState() 钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。
void
onScreenStateChanged(int screenState) 只要此视图的屏幕状态附加到更改,就会调用此方法。
void
onScrollChanged(int l, int t, int oldl, int oldt) 这是为了响应此视图中的内部滚动而调用的(即视图滚动了其自己的内容)。
boolean
onSetAlpha(int alpha) 如果存在涉及alpha的变换,则调用。
void
onSizeChanged(int w, int h, int oldw, int oldh) 当这个视图的大小发生变化时,这在布局期间被调用。
void
onStartTemporaryDetach() 当一个容器要临时分离一个孩子时,这被称为 ViewGroup.detachViewFromParent 。
boolean
onTouchEvent(MotionEvent event) 实现此方法来处理触摸屏幕动作事件。
boolean
onTrackballEvent(MotionEvent event) 实现这个方法来处理轨迹球运动事件。
void
onVisibilityAggregated(boolean isVisible) 当此视图的用户可见性可能受到对此视图本身,祖先视图或此视图所附窗口的更改的影响时调用。
void
onVisibilityChanged(View changedView, int visibility) 当视图的可见性或视图的祖先已更改时调用。
void
onWindowFocusChanged(boolean hasWindowFocus) 当包含此视图的窗口获得或失去焦点时调用。
void
onWindowSystemUiVisibilityChanged(int visible) 重写以查明窗口请求的系统UI可见性更改的时间,即 getWindowSystemUiVisibility()返回的值。
void
onWindowVisibilityChanged(int visibility) 叫当包含窗口具有改变其可见性(间 GONE , INVISIBLE ,和 VISIBLE )。
boolean
overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) 使用标准行为滚动视图以滚动到正常内容边界之外。
boolean
performAccessibilityAction(int action, Bundle arguments) 在视图上执行指定的辅助功能操作。
boolean
performClick() 调用此视图的OnClickListener(如果已定义)。
boolean
performContextClick(float x, float y) 调用此视图的OnContextClickListener(如果已定义)。
boolean
performContextClick() 调用此视图的OnContextClickListener(如果已定义)。
boolean
performHapticFeedback(int feedbackConstant) BZZZTT !! 1!
为此视图提供触觉反馈给用户。
boolean
performHapticFeedback(int feedbackConstant, int flags) BZZZTT !! 1!
像 performHapticFeedback(int)一样,附加选项。
boolean
performLongClick(float x, float y) 调用此视图的OnLongClickListener(如果已定义)。
boolean
performLongClick() 调用此视图的OnLongClickListener(如果已定义)。
void
playSoundEffect(int soundConstant) 发挥这个观点的声音效果。
boolean
post(Runnable action)
导致Runnable被添加到消息队列中。
boolean
postDelayed(Runnable action, long delayMillis)
导致Runnable被添加到消息队列中,以在指定的时间过去后运行。
void
postInvalidate()
导致在事件循环的后续循环中发生无效。
void
postInvalidate(int left, int top, int right, int bottom)
导致指定区域在事件循环的后续循环中发生无效。
void
postInvalidateDelayed(long delayMilliseconds, int left, int top, int right, int bottom)
导致指定区域在事件循环的后续循环中发生无效。
void
postInvalidateDelayed(long delayMilliseconds)
导致在事件循环的后续循环中发生无效。
void
postInvalidateOnAnimation(int left, int top, int right, int bottom)
导致指定区域在下一个动画时间步骤失效,通常是下一个显示帧。
void
postInvalidateOnAnimation()
导致在下一个动画时间步骤发生无效,通常是下一个显示帧。
void
postOnAnimation(Runnable action)
使Runnable在下一个动画时间步骤上执行。
void
postOnAnimationDelayed(Runnable action, long delayMillis)
导致Runnable在指定的时间过后,在下一个动画时间步骤执行。
void
refreshDrawableState() 调用它来强制视图更新其可绘制状态。
boolean
removeCallbacks(Runnable action)
从消息队列中删除指定的Runnable。
void
removeOnAttachStateChangeListener(View.OnAttachStateChangeListener listener) 删除附加状态更改的侦听器。
void
removeOnLayoutChangeListener(View.OnLayoutChangeListener listener) 删除布局更改的侦听器。
void
requestApplyInsets() 请求执行 onApplyWindowInsets(WindowInsets)的新调度。
void
requestFitSystemWindows() 此方法在API级别20中已弃用。对于较新的平台版本,请使用requestApplyInsets() 。
final boolean
requestFocus(int direction) 调用此方法试图将焦点放在特定的视图或其后面的某个子视图上,并为焦点的方向提供一个提示。
final boolean
requestFocus() 调用这个来试图将焦点放在特定的视图或其后代之一上。
boolean
requestFocus(int direction, Rect previouslyFocusedRect) 调用此方法可试图将焦点放在特定视图或其后面的某个子视图上,并提供关于焦点来自的方向和特定矩形的提示。
final boolean
requestFocusFromTouch() 调用这个来试图将焦点放在特定的视图或其后代之一上。
void
requestLayout() 当事情发生变化时调用它,这已经使这个视图的布局无效。
boolean
requestRectangleOnScreen(Rect rectangle) 要求在屏幕上可以看到这个视图的矩形,如果有必要的话可以滚动。
boolean
requestRectangleOnScreen(Rect rectangle, boolean immediate) 要求在屏幕上可以看到这个视图的矩形,如果有必要的话可以滚动。
final void
requestUnbufferedDispatch(MotionEvent event) 请求无缓冲地将给定的MotionEvents流分派给此视图。
static int
resolveSize(int size, int measureSpec) 版本 resolveSizeAndState(int, int, int)仅返回结果的 MEASURED_SIZE_MASK位。
static int
resolveSizeAndState(int size, int measureSpec, int childMeasuredState) 用于协调所需大小和状态的实用程序,以及MeasureSpec强加的约束。
void
restoreHierarchyState(SparseArray
void
saveHierarchyState(SparseArray
void
scheduleDrawable(Drawable who, Runnable what, long when) 安排一个drawable上的动作在指定的时间发生。
void
scrollBy(int x, int y) 移动视图的滚动位置。
void
scrollTo(int x, int y) 设置视图的滚动位置。
void
sendAccessibilityEvent(int eventType) 发送给定类型的可访问性事件。
void
sendAccessibilityEventUnchecked(AccessibilityEvent event) 此方法的行为与 sendAccessibilityEvent(int)完全相同,但将空白 AccessibilityEvent作为参数,并且不检查是否启用辅助功能。
void
setAccessibilityDelegate(View.AccessibilityDelegate delegate) 通过组合设置实现可访问性支持的委托(与继承相反)。
void
setAccessibilityLiveRegion(int mode) 为此视图设置实时区域模式。
void
setAccessibilityTraversalAfter(int afterId) 在可访问性遍历中设置一个视图的ID,在该视图之后访问此视图的ID。
void
setAccessibilityTraversalBefore(int beforeId) 设置在可访问性遍历中访问此视图之前的视图的标识。
void
setActivated(boolean activated) 更改此视图的激活状态。
void
setAlpha(float alpha) 将视图的不透明度设置为0到1的值,其中0表示视图完全透明,1表示视图完全不透明。
void
setAnimation(Animation animation) 设置要为此视图播放的下一个动画。
void
setBackground(Drawable background) 将背景设置为给定的Drawable,或者删除背景。
void
setBackgroundColor(int color) 设置此视图的背景颜色。
void
setBackgroundDrawable(Drawable background) 此方法在API级别16中已弃用。 setBackground(Drawable)改为使用setBackground(Drawable)
void
setBackgroundResource(int resid) 将背景设置为给定的资源。
void
setBackgroundTintList(ColorStateList tint) 将背景色应用于背景。
void
setBackgroundTintMode(PorterDuff.Mode tintMode) 指定用于将 setBackgroundTintList(ColorStateList) }指定的色调应用于背景可绘制的混合模式。
final void
setBottom(int bottom) 设置此视图相对于其父项的底部位置。
void
setCameraDistance(float distance)
将摄像机沿Z轴(与绘制视图的X / Y平面正交)的距离设置为此视图。
void
setClickable(boolean clickable) 启用或停用此视图的点击事件。
void
setClipBounds(Rect clipBounds) 在该视图上设置矩形区域,视图在绘制时将被裁剪到该区域。
void
setClipToOutline(boolean clipToOutline) 设置是否应该使用视图的大纲剪辑视图的内容。
void
setContentDescription(CharSequence contentDescription) 设置 View的内容说明。
void
setContextClickable(boolean contextClickable) 为此视图启用或禁用上下文点击。
void
setDrawingCacheBackgroundColor(int color) 为绘图缓存的位图设置纯色背景可以提高性能和内存使用率。
void
setDrawingCacheEnabled(boolean enabled)
启用或禁用图形缓存。
void
setDrawingCacheQuality(int quality) 设置此视图的图形缓存质量。
void
setDuplicateParentStateEnabled(boolean enabled)
在此视图中启用或禁用父级状态的重复。
void
setElevation(float elevation) 设置此视图的基本高程(以像素为单位)。
void
setEnabled(boolean enabled) 设置此视图的启用状态。
void
setFadingEdgeLength(int length) 设置用于指示此视图中有更多内容可用的褪色边的大小。
void
setFilterTouchesWhenObscured(boolean enabled) 设置当视图的窗口被另一个可见窗口遮挡时,框架是否应放弃触摸。
void
setFitsSystemWindows(boolean fitSystemWindows) 设置此视图是否应考虑系统屏幕装饰(如状态栏和插入其内容); 即控制是否执行fitSystemWindows(Rect)的默认实现。
void
setFocusable(boolean focusable) 设置此视图是否可以获得焦点。
void
setFocusableInTouchMode(boolean focusableInTouchMode) 设置此视图是否可以在触摸模式下获得焦点。
void
setForeground(Drawable foreground) 提供要在视图中的所有内容之上呈现的Drawable。
void
setForegroundGravity(int gravity) 描述前景如何定位。
void
setForegroundTintList(ColorStateList tint) 将前景应用于可绘制的前景。
void
setForegroundTintMode(PorterDuff.Mode tintMode) 指定用于将 setForegroundTintList(ColorStateList) }指定的色调应用于背景可绘制的混合模式。
void
setHapticFeedbackEnabled(boolean hapticFeedbackEnabled) 设置此视图是否应该针对长按等事件提供触觉反馈。
void
setHasTransientState(boolean hasTransientState) 设置此视图是否正在跟踪框架应尽可能保留的暂时状态。
void
setHorizontalFadingEdgeEnabled(boolean horizontalFadingEdgeEnabled)
定义此视图水平滚动时是否应淡化水平边缘。
void
setHorizontalScrollBarEnabled(boolean horizontalScrollBarEnabled)
定义是否绘制水平滚动条。
void
setHovered(boolean hovered) 设置视图当前是否被徘徊。
void
setId(int id) 设置此视图的标识符。
void
setImportantForAccessibility(int mode) 设置如何确定此视图是否对可访问性很重要,即如果它触发辅助功能事件并将其报告给查询屏幕的辅助功能服务。
void
setKeepScreenOn(boolean keepScreenOn) 控制屏幕是否保持打开状态,修改值 KEEP_SCREEN_ON 。
void
setLabelFor(int id) 将此视图用作可访问性标签的视图的标识。
void
setLayerPaint(Paint paint) 更新与当前图层一起使用的 Paint对象(仅在当前图层类型未设置为 LAYER_TYPE_NONE )。
void
setLayerType(int layerType, Paint paint)
指定支持此视图的图层的类型。
void
setLayoutDirection(int layoutDirection) 为此视图设置布局方向。
void
setLayoutParams(ViewGroup.LayoutParams params) 设置与此视图关联的布局参数。
final void
setLeft(int left) 设置此视图相对于其父项的左侧位置。
void
setLongClickable(boolean longClickable) 为此视图启用或禁用长时间点击事件。
final void
setMeasuredDimension(int measuredWidth, int measuredHeight)
此方法必须由 onMeasure(int, int)以存储测量宽度和测量高度。
void
setMinimumHeight(int minHeight) 设置视图的最小高度。
void
setMinimumWidth(int minWidth) 设置视图的最小宽度。
void
setNestedScrollingEnabled(boolean enabled) 启用或禁用此视图的嵌套滚动。
void
setNextFocusDownId(int nextFocusDownId) 设置下一个焦点为 FOCUS_DOWN时要使用的视图的ID。
void
setNextFocusForwardId(int nextFocusForwardId) 设置下一个焦点为 FOCUS_FORWARD时要使用的视图的ID。
void
setNextFocusLeftId(int nextFocusLeftId) 设置下一个焦点为 FOCUS_LEFT时要使用的视图的ID。
void
setNextFocusRightId(int nextFocusRightId) 设置下一个焦点为 FOCUS_RIGHT时要使用的视图的ID。
void
setNextFocusUpId(int nextFocusUpId) 设置下一个焦点为 FOCUS_UP时使用的视图的ID。
void
setOnApplyWindowInsetsListener(View.OnApplyWindowInsetsListener listener) 设置一个 View.OnApplyWindowInsetsListener来接管应用窗口 View.OnApplyWindowInsetsListener到这个视图的策略。
void
setOnClickListener(View.OnClickListener l) 单击此视图时注册要调用的回调。
void
setOnContextClickListener(View.OnContextClickListener l) 单击上下文时注册要调用的回调。
void
setOnCreateContextMenuListener(View.OnCreateContextMenuListener l) 当正在构建此视图的上下文菜单时,注册要调用的回调。
void
setOnDragListener(View.OnDragListener l) 为此视图注册拖动事件侦听器回调对象。
void
setOnFocusChangeListener(View.OnFocusChangeListener l) 注册一个回调,当这个视图的焦点改变时被调用。
void
setOnGenericMotionListener(View.OnGenericMotionListener l) 当通用运动事件被发送到这个视图时,注册一个回调被调用。
void
setOnHoverListener(View.OnHoverListener l) 将悬停事件发送到此视图时注册要调用的回调。
void
setOnKeyListener(View.OnKeyListener l) 在此视图中按下硬件按键时注册要调用的回调。
void
setOnLongClickListener(View.OnLongClickListener l) 当单击并保持此视图时,注册要调用的回调。
void
setOnScrollChangeListener(View.OnScrollChangeListener l) 当此视图的滚动X或Y位置更改时,注册一个要调用的回调。
void
setOnSystemUiVisibilityChangeListener(View.OnSystemUiVisibilityChangeListener l) 设置监听器以在系统栏可见性更改时接收回调。
void
setOnTouchListener(View.OnTouchListener l) 当触摸事件发送到此视图时,注册要调用的回调。
void
setOutlineProvider(ViewOutlineProvider provider) 设置视图的 ViewOutlineProvider ,该视图生成定义它所投射阴影形状的Outline,并启用轮廓剪裁。
void
setOverScrollMode(int overScrollMode) 为此视图设置过卷模式。
void
setPadding(int left, int top, int right, int bottom) 设置填充。
void
setPaddingRelative(int start, int top, int end, int bottom) 设置相对填充。
void
setPivotX(float pivotX) 设置视图为 rotated和 scaled的点的x位置。
void
setPivotY(float pivotY) 设置视图为 rotated和 scaled的点的y位置。
void
setPointerIcon(PointerIcon pointerIcon) 设置当前视图的指针图标。
void
setPressed(boolean pressed) 设置此视图的按下状态。
final void
setRight(int right) 设置此视图相对于其父项的正确位置。
void
setRotation(float rotation) 设置视图围绕枢轴点旋转的角度。
void
setRotationX(float rotationX) 设置视图通过枢轴点围绕水平轴旋转的角度。
void
setRotationY(float rotationY) 设置视图围绕通过枢轴点的垂直轴旋转的角度。
void
setSaveEnabled(boolean enabled) 控制是否启用保存此视图状态(即,是否调用其 onSaveInstanceState()方法)。
void
setSaveFromParentEnabled(boolean enabled) 控制此视图下的整个层次结构是否会在其父级发生状态保存遍历时保存其状态。
void
setScaleX(float scaleX) 以视图的未缩放宽度的比例设置视图在x轴周围按比例缩放的量。
void
setScaleY(float scaleY) 以视图的未缩放宽度的比例设置视图在Y轴周围缩放的量。
void
setScrollBarDefaultDelayBeforeFade(int scrollBarDefaultDelayBeforeFade) 定义滚动条淡出之前的延迟。
void
setScrollBarFadeDuration(int scrollBarFadeDuration) 定义滚动条淡入时间。
void
setScrollBarSize(int scrollBarSize) 定义滚动条的大小。
void
setScrollBarStyle(int style)
指定滚动条的样式。
void
setScrollContainer(boolean isScrollContainer) 更改此视图是否是其窗口中的一组可滚动容器。
void
setScrollIndicators(int indicators, int mask) 设置由蒙版指定的滚动指示器的状态。
void
setScrollIndicators(int indicators) 设置所有滚动指示器的状态。
void
setScrollX(int value) 设置视图的水平滚动位置。
void
setScrollY(int value) 设置视图的垂直滚动位置。
void
setScrollbarFadingEnabled(boolean fadeScrollbars) 定义视图不滚动时滚动条是否会淡入淡出。
void
setSelected(boolean selected) 更改此视图的选择状态。
void
setSoundEffectsEnabled(boolean soundEffectsEnabled) 设置此视图是否应该为点击和触摸等事件启用声音效果。
void
setStateListAnimator(StateListAnimator stateListAnimator) 将提供的StateListAnimator附加到此视图。
void
setSystemUiVisibility(int visibility) 要求更改状态栏或其他屏幕/窗口装饰的可见性。
void
setTag(int key, Object tag) 设置与此视图和密钥关联的标签。
void
setTag(Object tag) 设置与此视图关联的标签。
void
setTextAlignment(int textAlignment) 设置文本对齐。
void
setTextDirection(int textDirection) 设置文字方向。
final void
setTop(int top) 设置此视图相对于其父项的顶部位置。
void
setTouchDelegate(TouchDelegate delegate) 为此视图设置TouchDelegate。
final void
setTransitionName(String transitionName) 设置用于识别转场中的视图的视图的名称。
void
setTranslationX(float translationX) 设置此视图相对于其 left位置的水平位置。
void
setTranslationY(float translationY) 设置此视图相对于其 top位置的垂直位置。
void
setTranslationZ(float translationZ) 设置此视图相对于其 elevation的深度位置。
void
setVerticalFadingEdgeEnabled(boolean verticalFadingEdgeEnabled)
定义此视图垂直滚动时是否应褪色垂直边缘。
void
setVerticalScrollBarEnabled(boolean verticalScrollBarEnabled)
定义是否应绘制垂直滚动条。
void
setVerticalScrollbarPosition(int position) 设置垂直滚动条的位置。
void
setVisibility(int visibility) 设置此视图的启用状态。
void
setWillNotCacheDrawing(boolean willNotCacheDrawing) 当视图的绘图缓存启用时,绘图将重定向到离屏位图。
void
setWillNotDraw(boolean willNotDraw) 如果此视图本身不执行任何绘制,请设置此标记以允许进一步优化。
void
setX(float x) 设置此视图的视觉x位置(以像素为单位)。
void
setY(float y) 设置此视图的可视y位置(以像素为单位)。
void
setZ(float z) 设置此视图的可视z位置,以像素为单位。
boolean
showContextMenu() 显示该视图的上下文菜单。
boolean
showContextMenu(float x, float y) 显示锚定到指定视图相对坐标的此视图的上下文菜单。
ActionMode
startActionMode(ActionMode.Callback callback, int type) 用给定的类型启动一个动作模式。
ActionMode
startActionMode(ActionMode.Callback callback) 启动默认类型为 TYPE_PRIMARY的操作模式。
void
startAnimation(Animation animation) 现在开始指定的动画。
final boolean
startDrag(ClipData data, View.DragShadowBuilder shadowBuilder, Object myLocalState, int flags) 此方法在API级别24中已弃用。对于较新的平台版本,请使用startDragAndDrop() 。
final boolean
startDragAndDrop(ClipData data, View.DragShadowBuilder shadowBuilder, Object myLocalState, int flags) 开始拖放操作。
boolean
startNestedScroll(int axes) 沿给定轴开始可嵌套滚动操作。
void
stopNestedScroll() 停止正在进行的嵌套滚动。
String
toString() 返回对象的字符串表示形式。
void
unscheduleDrawable(Drawable who, Runnable what) 取消可绘制的预定动作。
void
unscheduleDrawable(Drawable who) 取消调度与给定Drawable关联的任何事件。
final void
updateDragShadow(View.DragShadowBuilder shadowBuilder) 更新正在进行的拖放操作的拖影。
boolean
verifyDrawable(Drawable who) 如果你的视图子类正在显示它自己的Drawable对象,它应该覆盖这个函数,并且对于它显示的任何Drawable返回true。
boolean
willNotCacheDrawing() 返回此视图是否可以缓存其绘图。
boolean
willNotDraw() 返回此视图是否自行绘制。
From class java.lang.Object
Object
clone() 创建并返回此对象的副本。
boolean
equals(Object obj) 指示其他某个对象是否“等于”这一个。
void
finalize() 当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。
final Class>
getClass() 返回此 Object的运行时类。
int
hashCode() 返回对象的哈希码值。
final void
notify() 唤醒正在等待该对象监视器的单个线程。
final void
notifyAll() 唤醒在该对象监视器上等待的所有线程。
String
toString() 返回对象的字符串表示形式。
final void
wait(long millis, int nanos) 导致当前线程等待,直到另一个线程为此对象调用 notify()方法或 notifyAll()方法,或其他某个线程中断当前线程,或者经过一定的实时时间。
final void
wait(long millis) 导致当前线程等待,直到另一个线程调用此对象的 notify()方法或 notifyAll()方法或经过了指定的时间量。
final void
wait() 导致当前线程等待,直到另一个线程调用此对象的方法 notify()或方法 notifyAll() 。
From interface android.view.ViewParent
abstract void
bringChildToFront(View child) 更改孩子的z顺序,使其位于所有其他孩子的顶部。
abstract boolean
canResolveLayoutDirection() 告诉该视图父级是否可以解决布局方向。
abstract boolean
canResolveTextAlignment() 告诉该视图父级是否可以解决文本对齐问题。
abstract boolean
canResolveTextDirection() 告诉该视图父级是否可以解析文本方向。
abstract void
childDrawableStateChanged(View child) 当孩子的可绘制状态发生变化时,该方法在父级上被调用。
abstract void
childHasTransientStateChanged(View child, boolean hasTransientState) 当子视图现在或不再跟踪瞬态时调用。
abstract void
clearChildFocus(View child) 当该父母的一个孩子放弃焦点时调用
abstract void
createContextMenu(ContextMenu menu) 如果父项有任何要添加的内容(然后对其父项进行递归),请让父项填充指定的上下文菜单。
abstract View
focusSearch(View v, int direction) 在指定的方向查找想要聚焦的最近视图
abstract void
focusableViewAvailable(View v) 告诉家长,新的可调焦视图已经可用。
abstract boolean
getChildVisibleRect(View child, Rect r, Point offset) 计算根据子视图坐标定义的矩形区域的可见部分。
abstract int
getLayoutDirection() 返回此视图父级布局方向。
abstract ViewParent
getParent() 如果它存在,则返回父项;或者返回null。
abstract ViewParent
getParentForAccessibility() 获取给定View的父级以获得可访问性。
abstract int
getTextAlignment() 返回此视图父文本对齐。
abstract int
getTextDirection() 返回此视图的父文本方向。
abstract void
invalidateChild(View child, Rect r) 全部或部分儿童脏,需要重新绘制。
abstract ViewParent
invalidateChildInParent(int[] location, Rect r) 全部或部分儿童脏,需要重新绘制。
abstract boolean
isLayoutDirectionResolved() 告诉该视图父级布局方向是否已解决。
abstract boolean
isLayoutRequested() 指示是否在此视图父级上请求布局。
abstract boolean
isTextAlignmentResolved() 告诉该视图父文本对齐是否已解决。
abstract boolean
isTextDirectionResolved() 告诉该视图父文本方向是否已解决。
abstract void
notifySubtreeAccessibilityStateChanged(View child, View source, int changeType) 通知视图父级其子元素的可访问性状态已发生变化,并且子树的结构不同。
abstract boolean
onNestedFling(View target, float velocityX, float velocityY, boolean consumed) 从嵌套滚动中请求投掷。
abstract boolean
onNestedPreFling(View target, float velocityX, float velocityY) 在目标视图消耗它之前,将其反应为嵌套的拖动。
abstract boolean
onNestedPrePerformAccessibilityAction(View target, int action, Bundle arguments) 在目标进程处理之前,响应由目标后代视图委托的可访问性操作。
abstract void
onNestedPreScroll(View target, int dx, int dy, int[] consumed) 在目标视图占用滚动的一部分之前,对正在进行的嵌套滚动进行处理。
abstract void
onNestedScroll(View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) 反应到正在进行的嵌套滚动。
abstract void
onNestedScrollAccepted(View child, View target, int nestedScrollAxes) 响应成功声明嵌套滚动操作。
abstract boolean
onStartNestedScroll(View child, View target, int nestedScrollAxes) 响应启动可嵌套滚动操作的后代视图,并在适当的情况下声明嵌套滚动操作。
abstract void
onStopNestedScroll(View target) 反应到嵌套滚动操作结束。
abstract void
recomputeViewAttributes(View child) 告诉视图层次结构,需要重新评估全局视图属性。
abstract void
requestChildFocus(View child, View focused) 当这个父母的孩子需要关注时调用
abstract boolean
requestChildRectangleOnScreen(View child, Rect rectangle, boolean immediate) 当该组的小孩想要将特定矩形定位到屏幕上时调用。
abstract void
requestDisallowInterceptTouchEvent(boolean disallowIntercept) 当孩子不希望这个父母及其祖先用 onInterceptTouchEvent(MotionEvent)拦截触摸事件时 onInterceptTouchEvent(MotionEvent) 。
abstract void
requestFitSystemWindows() 请求执行 View.fitSystemWindows(Rect)的新调度。
abstract void
requestLayout() 当某些事情发生变化时调用,这已使该视图父级的子级布局无效。
abstract boolean
requestSendAccessibilityEvent(View child, AccessibilityEvent event) 由小孩打电话要求其父母发送 AccessibilityEvent 。
abstract void
requestTransparentRegion(View child) 当孩子希望视图层次结构收集并向窗口合成器报告透明区域时调用。
abstract boolean
showContextMenuForChild(View originalView) 显示指定视图或其祖先的上下文菜单。
abstract boolean
showContextMenuForChild(View originalView, float x, float y) 显示指定视图或其祖先的上下文菜单,该上下文菜单被锚定到指定的视图相对坐标。
abstract ActionMode
startActionModeForChild(View originalView, ActionMode.Callback callback, int type) 为指定视图启动特定类型的操作模式。
abstract ActionMode
startActionModeForChild(View originalView, ActionMode.Callback callback) 使用默认类型 TYPE_PRIMARY启动指定视图的操作模式。
From interface android.view.ViewManager
abstract void
addView(View view, ViewGroup.LayoutParams params) 将传递的LayoutParams分配给传递的View并将视图添加到窗口。
abstract void
removeView(View view)
abstract void
updateViewLayout(View view, ViewGroup.LayoutParams params)
From interface android.graphics.drawable.Drawable.Callback
abstract void
invalidateDrawable(Drawable who) 当drawable需要重绘时调用。
abstract void
scheduleDrawable(Drawable who, Runnable what, long when) Drawable可以调用它来安排动画的下一帧。
abstract void
unscheduleDrawable(Drawable who, Runnable what) Drawable可以调用此 scheduleDrawable(Drawable, Runnable, long)调度先前预定的操作 scheduleDrawable(Drawable, Runnable, long) 。
From interface android.view.KeyEvent.Callback
abstract boolean
onKeyDown(int keyCode, KeyEvent event) 当关键事件发生时调用。
abstract boolean
onKeyLongPress(int keyCode, KeyEvent event) 长时间按下时发生。
abstract boolean
onKeyMultiple(int keyCode, int count, KeyEvent event) 当连续发生同一个键的多个向下/向上对时调用。
abstract boolean
onKeyUp(int keyCode, KeyEvent event) 发生关键事件时调用。
From interface android.view.accessibility.AccessibilityEventSource
abstract void
sendAccessibilityEvent(int eventType) 处理给定事件类型的发送 AccessibilityEvent的请求。
abstract void
sendAccessibilityEventUnchecked(AccessibilityEvent event) 处理发送 AccessibilityEvent的请求。
From interface android.support.v4.view.ScrollingView
abstract int
computeHorizontalScrollExtent()
计算水平滚动条拇指在水平范围内的水平范围。
abstract int
computeHorizontalScrollOffset()
计算水平滚动条拇指在水平范围内的水平偏移量。
abstract int
computeHorizontalScrollRange()
计算水平滚动条代表的水平范围。
abstract int
computeVerticalScrollExtent()
计算垂直滚动条拇指在垂直范围内的垂直范围。
abstract int
computeVerticalScrollOffset()
计算垂直滚动条拇指在水平范围内的垂直偏移量。
abstract int
computeVerticalScrollRange()
计算垂直滚动条代表的垂直范围。
From interface android.support.v4.view.NestedScrollingChild
abstract boolean
dispatchNestedFling(float velocityX, float velocityY, boolean consumed) 向嵌套滚动父级派发一个投掷。
abstract boolean
dispatchNestedPreFling(float velocityX, float velocityY) 在此视图处理它之前,将嵌套分派给嵌套的滚动父级。
abstract boolean
dispatchNestedPreScroll(int dx, int dy, int[] consumed, int[] offsetInWindow) 在该视图消耗其任何部分之前,调度正在进行的嵌套滚动的一个步骤。
abstract boolean
dispatchNestedScroll(int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int[] offsetInWindow) 发送正在进行的嵌套滚动的一个步骤。
abstract boolean
hasNestedScrollingParent() 如果此视图具有嵌套滚动父级,则返回true。
abstract boolean
isNestedScrollingEnabled() 如果对此视图启用嵌套滚动,则返回true。
abstract void
setNestedScrollingEnabled(boolean enabled) 启用或禁用此视图的嵌套滚动。
abstract boolean
startNestedScroll(int axes) 沿给定轴开始可嵌套滚动操作。
abstract void
stopNestedScroll() 停止正在进行的嵌套滚动。
XML attributes
android.support.v7.recyclerview:layoutManager
要使用的布局管理器的类名称。
The class must extend android.support.v7.widget.RecyclerView$LayoutManager and have either a default constructor or constructor with the signature (android.content.Context, android.util.AttributeSet, int, int).
If the name starts with a '.', application package is prefixed. Else, if the name contains a '.', the classname is assumed to be a full class name. Else, the recycler view package name (android.support.v7.widget) is prefixed.
可能是一个字符串值,使用'\\;' 转义字符如'\\ n'或'\\ uxxxx'作为unicode字符;
Constants
HORIZONTAL
int HORIZONTAL
常量值:0(0x00000000)
INVALID_TYPE
int INVALID_TYPE
常量值:-1(0xffffffff)
NO_ID
long NO_ID
常量值:-1(0xffffffffffffffff)
NO_POSITION
int NO_POSITION
常量值:-1(0xffffffff)
SCROLL_STATE_DRAGGING
int SCROLL_STATE_DRAGGING
RecyclerView目前正在被外部输入如用户触摸输入拖动。
也可以看看:
getScrollState()
常数值:1(0x00000001)
SCROLL_STATE_IDLE
int SCROLL_STATE_IDLE
RecyclerView目前不在滚动。
也可以看看:
getScrollState()
常量值:0(0x00000000)
SCROLL_STATE_SETTLING
int SCROLL_STATE_SETTLING
RecyclerView目前正在动画到最终位置,而不受外界控制。
也可以看看:
getScrollState()
常量值:2(0x00000002)
TOUCH_SLOP_DEFAULT
int TOUCH_SLOP_DEFAULT
常量用于setScrollingTouchSlop(int) 。 表示RecyclerView应该使用标准的触控斜面进行平滑,连续的滚动。
常量值:0(0x00000000)
TOUCH_SLOP_PAGING
int TOUCH_SLOP_PAGING
常量用于setScrollingTouchSlop(int) 。 指示RecyclerView应该使用标准的触摸边框来滚动捕捉页面或其他粗糙屏障的小部件。
常数值:1(0x00000001)
VERTICAL
int VERTICAL
常数值:1(0x00000001)
Public constructors
RecyclerView
RecyclerView (Context context)
Parameters
context
Context
RecyclerView
RecyclerView (Context context,
AttributeSet attrs)
Parameters
context
Context
attrs
AttributeSet
RecyclerView
RecyclerView (Context context,
AttributeSet attrs,
int defStyle)
Parameters
context
Context
attrs
AttributeSet
defStyle
int
Public methods
addFocusables
void addFocusables (ArrayList
int direction,
int focusableMode)
将视图后代的任何可聚焦视图添加到视图中(可能包括该视图,如果它本身是可聚焦的话)。 如果我们处于触摸模式,则该方法会添加所有可聚焦视图,或者只有在触摸模式下可以聚焦的视图才可以聚焦;如果根据可聚焦模式参数启用了辅助功能,则只有可以使用辅助焦点的视图。
Parameters
views
ArrayList: Focusable views found so far or null if all we are interested is the number of focusables.
direction
int: The direction of the focus.
focusableMode
int: The type of focusables to be added.
addItemDecoration
void addItemDecoration (RecyclerView.ItemDecoration decor)
添加一个RecyclerView.ItemDecoration到这个RecyclerView。 商品装饰可以影响个别商品视图的测量和绘图。
物品装饰品已订购。 先放置在列表中的装饰将首先运行/查询/绘制,以便对项目视图产生影响。 填充添加到视图将嵌套; 先前装饰添加的填充将意味着列表中的更多项目装饰将被要求在先前装饰的给定区域内绘制/填充。
Parameters
decor
RecyclerView.ItemDecoration: Decoration to add
addItemDecoration
void addItemDecoration (RecyclerView.ItemDecoration decor,
int index)
添加一个RecyclerView.ItemDecoration到这个RecyclerView。 商品装饰可以影响个别商品视图的测量和绘图。
物品装饰品已订购。 先放置在列表中的装饰将首先运行/查询/绘制,以便对项目视图产生影响。 填充添加到视图将嵌套; 先前装饰添加的填充将意味着列表中的更多项目装饰将被要求在先前装饰的给定区域内绘制/填充。
Parameters
decor
RecyclerView.ItemDecoration: Decoration to add
index
int: Position in the decoration chain to insert this decoration at. If this value is negative the decoration will be added at the end.
addOnChildAttachStateChangeListener
void addOnChildAttachStateChangeListener (RecyclerView.OnChildAttachStateChangeListener listener)
注册一个监听器,当子视图连接到RecyclerView或从RecyclerView分离时,将会收到通知。
当LayoutManager或RecyclerView决定不再需要子视图时,将调用此侦听器。 如果应用程序将昂贵或重量级数据与项目视图相关联,则这可能是发布或释放这些资源的好地方。
Parameters
listener
RecyclerView.OnChildAttachStateChangeListener: Listener to register
addOnItemTouchListener
void addOnItemTouchListener (RecyclerView.OnItemTouchListener listener)
添加 RecyclerView.OnItemTouchListener以在将触发事件分派到子视图或此视图的标准滚动行为之前拦截它们。
客户端代码可以使用监听器来实现项目操作行为。 一旦侦听器从onInterceptTouchEvent(RecyclerView, MotionEvent)返回true, onInterceptTouchEvent(RecyclerView, MotionEvent)为每个传入的onInterceptTouchEvent(RecyclerView, MotionEvent)其方法onTouchEvent(RecyclerView, MotionEvent) ,直到手势结束。
Parameters
listener
RecyclerView.OnItemTouchListener: Listener to add
也可以看看:
RecyclerView.SimpleOnItemTouchListener
addOnScrollListener
void addOnScrollListener (RecyclerView.OnScrollListener listener)
添加一个侦听器,将会通知任何滚动状态或位置的变化。
添加侦听器的组件在完成时应小心删除它。 拥有视图所有权的其他组件可能会调用clearOnScrollListeners()来删除所有附加的监听器。
Parameters
listener
RecyclerView.OnScrollListener: listener to set or null to clear
clearOnChildAttachStateChangeListeners
void clearOnChildAttachStateChangeListeners ()
删除通过 addOnChildAttachStateChangeListener(OnChildAttachStateChangeListener)添加的所有侦听 addOnChildAttachStateChangeListener(OnChildAttachStateChangeListener) 。
clearOnScrollListeners
void clearOnScrollListeners ()
移除已通知滚动状态或位置发生任何更改的所有辅助侦听器。
computeHorizontalScrollExtent
int computeHorizontalScrollExtent ()
计算水平滚动条拇指在水平范围内的水平范围。 该值用于计算滚动条轨道内的拇指长度。
范围以任意单位表示,必须与 computeHorizontalScrollRange()和 computeHorizontalScrollOffset()使用的单位相同。
默认实现返回0。
如果您想支持滚动条, computeHorizontalScrollExtent(RecyclerView.State)在LayoutManager中覆盖 computeHorizontalScrollExtent(RecyclerView.State) 。
Returns
int
The horizontal extent of the scrollbar's thumb
也可以看看:
computeHorizontalScrollExtent(RecyclerView.State)
computeHorizontalScrollOffset
int computeHorizontalScrollOffset ()
计算水平滚动条拇指在水平范围内的水平偏移量。 该值用于计算滚动条轨道内的拇指长度。
范围以任意单位表示,必须与 computeHorizontalScrollRange()和 computeHorizontalScrollExtent()使用的单位相同。
默认实现返回0。
如果您想支持滚动条, computeHorizontalScrollOffset(RecyclerView.State)在LayoutManager中覆盖 computeHorizontalScrollOffset(RecyclerView.State) 。
Returns
int
The horizontal offset of the scrollbar's thumb
也可以看看:
(RecyclerView.State)
computeHorizontalScrollRange
int computeHorizontalScrollRange ()
计算水平滚动条代表的水平范围。
范围以任意单位表示,必须与 computeHorizontalScrollExtent()和 computeHorizontalScrollOffset()使用的单位相同。
默认实现返回0。
如果您想支持滚动条, computeHorizontalScrollRange(RecyclerView.State)在LayoutManager中覆盖 computeHorizontalScrollRange(RecyclerView.State) 。
Returns
int
The total horizontal range represented by the vertical scrollbar
也可以看看:
computeHorizontalScrollRange(RecyclerView.State)
computeVerticalScrollExtent
int computeVerticalScrollExtent ()
计算垂直滚动条拇指在垂直范围内的垂直范围。 该值用于计算滚动条轨道内的拇指长度。
范围以任意单位表示,必须与 computeVerticalScrollRange()和 computeVerticalScrollOffset()使用的单位相同。
默认实现返回0。
如果您想支持滚动条, computeVerticalScrollExtent(RecyclerView.State)在LayoutManager中覆盖 computeVerticalScrollExtent(RecyclerView.State) 。
Returns
int
The vertical extent of the scrollbar's thumb
也可以看看:
computeVerticalScrollExtent(RecyclerView.State)
computeVerticalScrollOffset
int computeVerticalScrollOffset ()
计算垂直滚动条拇指在垂直范围内的垂直偏移量。 该值用于计算滚动条轨道内的拇指长度。
范围以任意单位表示,必须与 computeVerticalScrollRange()和 computeVerticalScrollExtent()使用的单位相同。
默认实现返回0。
如果您想支持滚动条, computeVerticalScrollOffset(RecyclerView.State)在LayoutManager中覆盖 computeVerticalScrollOffset(RecyclerView.State) 。
Returns
int
The vertical offset of the scrollbar's thumb
也可以看看:
(RecyclerView.State)
computeVerticalScrollRange
int computeVerticalScrollRange ()
计算垂直滚动条代表的垂直范围。
范围以任意单位表示,必须与 computeVerticalScrollExtent()和 computeVerticalScrollOffset()使用的单位相同。
默认实现返回0。
如果您想支持滚动条, computeVerticalScrollRange(RecyclerView.State)在LayoutManager中覆盖 computeVerticalScrollRange(RecyclerView.State) 。
Returns
int
The total vertical range represented by the vertical scrollbar
也可以看看:
computeVerticalScrollRange(RecyclerView.State)
dispatchNestedFling
boolean dispatchNestedFling (float velocityX,
float velocityY,
boolean consumed)
向嵌套滚动父级派发一个投掷。
应该使用此方法来指示嵌套滚动的孩子已经检测到适用于投掷的适当条件。 通常这意味着触摸滚动以velocity结束,滚动方向沿着可滚动轴线满足或超过minimum fling velocity 。
如果嵌套的滚动子视图通常会抛出,但它位于其自己的内容的边缘,则可以使用此方法代替该嵌套的滚动父级。 父母可以有选择地消费一下,或者观察孩子的情绪。
Parameters
velocityX
float: Horizontal fling velocity in pixels per second
velocityY
float: Vertical fling velocity in pixels per second
consumed
boolean: true if the child consumed the fling, false otherwise
Returns
boolean
true if the nested scrolling parent consumed or otherwise reacted to the fling
dispatchNestedPreFling
boolean dispatchNestedPreFling (float velocityX,
float velocityY)
在此视图处理它之前,将嵌套分派给嵌套的滚动父级。
嵌套的预先掷骰事件是嵌套的掷骰事件,触摸截取是触摸的,嵌套的预滚动是嵌套滚动。 dispatchNestedPreFling在子视图消耗它之前,为嵌套的一排中的父视图偏移一个机会以完全消耗该dispatchNestedPreFling 。 如果此方法返回true ,则嵌套的父视图会消耗该块,并且该视图不应该作为结果滚动。
为了获得更好的用户体验,嵌套滚动链中只有一个视图应该一次使用这个文件。 如果父视图消耗了这个方法,这个方法将返回false。 自定义视图实现应该以两种方式解决这个问题:
If a custom view is paged and needs to settle to a fixed page-point, do not call dispatchNestedPreFling; consume the fling and settle to a valid position regardless.
If a nested parent does consume the fling, this view should not scroll at all, even to settle back to a valid idle position.
视图也不应该在当前不支持滚动的坐标轴上为嵌套父视图提供快速速度; 一个ScrollView不应该提供一个水平的ScrollView速度给它的父母,因为沿该轴的滚动是不被允许的,并且沿着该运动的速度没有意义。
Parameters
velocityX
float: Horizontal fling velocity in pixels per second
velocityY
float: Vertical fling velocity in pixels per second
Returns
boolean
true if a nested scrolling parent consumed the fling
dispatchNestedPreScroll
boolean dispatchNestedPreScroll (int dx,
int dy,
int[] consumed,
int[] offsetInWindow)
在该视图消耗其任何部分之前,调度正在进行的嵌套滚动的一个步骤。
嵌套的预滚动事件是嵌套的滚动事件是什么触摸拦截要触摸。 dispatchNestedPreScroll为嵌套滚动操作中的父视图提供了在子视图消耗它之前消耗部分或全部滚动操作的机会。
Parameters
dx
int: Horizontal scroll distance in pixels
dy
int: Vertical scroll distance in pixels
consumed
int: Output. If not null, consumed[0] will contain the consumed component of dx and consumed[1] the consumed dy.
offsetInWindow
int: Optional. If not null, on return this will contain the offset in local view coordinates of this view from before this operation to after it completes. View implementations may use this to adjust expected input coordinate tracking.
Returns
boolean
true if the parent consumed some or all of the scroll delta
dispatchNestedScroll
boolean dispatchNestedScroll (int dxConsumed,
int dyConsumed,
int dxUnconsumed,
int dyUnconsumed,
int[] offsetInWindow)
发送正在进行的嵌套滚动的一个步骤。
支持嵌套滚动的视图实现应该调用它来报告正在进行的滚动信息到当前嵌套的滚动父项。 如果嵌套滚动当前没有进行,或者对于该视图嵌套滚动不是enabled ,则此方法不执行任何操作。
在使用滚动事件本身的组件之前,兼容的视图实现也应该调用 dispatchNestedPreScroll 。
Parameters
dxConsumed
int: Horizontal distance in pixels consumed by this view during this scroll step
dyConsumed
int: Vertical distance in pixels consumed by this view during this scroll step
dxUnconsumed
int: Horizontal scroll distance in pixels not consumed by this view
dyUnconsumed
int: Horizontal scroll distance in pixels not consumed by this view
offsetInWindow
int: Optional. If not null, on return this will contain the offset in local view coordinates of this view from before this operation to after it completes. View implementations may use this to adjust expected input coordinate tracking.
Returns
boolean
true if the event was dispatched, false if it could not be dispatched.
draw
void draw (Canvas c)
手动将此视图(及其所有子项)呈现给定的Canvas。 在调用这个函数之前,视图必须已经完成了一个完整的布局。 在实现视图时,实现onDraw(android.graphics.Canvas)而不是重写此方法。 如果您确实需要重写此方法,请调用超类版本。
Parameters
c
Canvas: The Canvas to which the View is rendered.
drawChild
boolean drawChild (Canvas canvas,
View child,
long drawingTime)
绘制这个视图组的一个孩子。 这个方法负责让画布处于正确的状态。 这包括剪裁,翻译,以便孩子的滚动起点在0,0,并应用任何动画转换。
Parameters
canvas
Canvas: The canvas on which to draw the child
child
View: Who to draw
drawingTime
long: The time at which draw is occurring
Returns
boolean
True if an invalidate() was issued
findChildViewUnder
View findChildViewUnder (float x,
float y)
找到给定点下的最顶层视图。
Parameters
x
float: Horizontal position in pixels to search
y
float: Vertical position in pixels to search
Returns
View
The child view under (x, y) or null if no matching child is found
findContainingItemView
View findContainingItemView (View view)
遍历给定视图的祖先,并返回包含它的项目视图,也是RecyclerView的直接子视图。 通过调用getChildViewHolder(View)可以使用此返回的视图来获取getChildViewHolder(View) 。
Parameters
view
View: The view that is a descendant of the RecyclerView.
Returns
View
The direct child of the RecyclerView which contains the given view or null if the provided view is not a descendant of this RecyclerView.
也可以看看:
getChildViewHolder(View)
findContainingViewHolder(View)
findContainingViewHolder
RecyclerView.ViewHolder findContainingViewHolder (View view)
返回包含给定视图的ViewHolder。
Parameters
view
View: The view that is a descendant of the RecyclerView.
Returns
RecyclerView.ViewHolder
The ViewHolder that contains the given view or null if the provided view is not a descendant of this RecyclerView.
findViewHolderForAdapterPosition
RecyclerView.ViewHolder findViewHolderForAdapterPosition (int position)
返回数据集给定位置的项目的ViewHolder。 与findViewHolderForLayoutPosition(int)不同,此方法考虑到了所有尚未反映到布局中的未决适配器更改。 另一方面,如果notifyDataSetChanged()但新的布局尚未计算,则此方法将返回null因为在计算布局之前,新的视图位置是未知的。
此方法仅检查RecyclerView的子项。 如果给定的position的项目没有布置,它将不会创建一个新项目。
当ItemAnimator运行更改动画时,可能有2个ViewHolders表示相同的Item。 在这种情况下,将返回更新后的ViewHolder。
Parameters
position
int: The position of the item in the data set of the adapter
Returns
RecyclerView.ViewHolder
The ViewHolder at position or null if there is no such item
findViewHolderForItemId
RecyclerView.ViewHolder findViewHolderForItemId (long id)
返回具有给定ID的项目的ViewHolder。 RecyclerView必须使用带有stableIds的适配器才能返回非空值。
此方法仅检查RecyclerView的子项。 如果具有给定的id的项目未布置,则不会创建新项目。 当ItemAnimator运行更改动画时,可能会有2个具有相同ID的ViewHolders。 在这种情况下,将返回更新后的ViewHolder。
Parameters
id
long: The id for the requested item
Returns
RecyclerView.ViewHolder
The ViewHolder with the given id or null if there is no such item
findViewHolderForLayoutPosition
RecyclerView.ViewHolder findViewHolderForLayoutPosition (int position)
返回数据集中给定位置的项目的ViewHolder,从最新的布局阶段开始。
此方法仅检查RecyclerView的子项。 如果给定的position项目没有布置,它将不会创建一个新项目。
请注意,当适配器内容更改时,ViewHolder位置不会更新,直到下一个布局计算。 如果有未完成的适配器更新,则此方法的返回值可能与您的适配器内容不匹配。 您可以使用# getAdapterPosition()获取getAdapterPosition()的当前适配器位置。
当ItemAnimator运行更改动画时,可能会有2个ViewHolders具有相同的布局位置来表示相同的Item。 在这种情况下,将返回更新后的ViewHolder。
Parameters
position
int: The position of the item in the data set of the adapter
Returns
RecyclerView.ViewHolder
The ViewHolder at position or null if there is no such item
findViewHolderForPosition
RecyclerView.ViewHolder findViewHolderForPosition (int position)
此方法已弃用。 使用findViewHolderForLayoutPosition(int)或findViewHolderForAdapterPosition(int)
Parameters
position
int
Returns
RecyclerView.ViewHolder
fling
boolean fling (int velocityX,
int velocityY)
以每秒像素为单位,以每个轴的初始速度开始标准投掷。 如果给定的速度低于系统定义的最小值,则此方法将返回false并且不会发生飞掷。
Parameters
velocityX
int: Initial horizontal velocity in pixels per second
velocityY
int: Initial vertical velocity in pixels per second
Returns
boolean
true if the fling was started, false if the velocity was too low to fling or LayoutManager does not support scrolling in the axis fling is issued.
也可以看看:
canScrollVertically()
canScrollHorizontally()
focusSearch
View focusSearch (View focused,
int direction)
由于RecyclerView是一个包含虚拟子项(包含在适配器中但在用户界面中不可见的项目)的ViewGroup集合,因此它采用了与其他ViewGroup不同的更加涉及的焦点搜索策略。
它首先在RecyclerView中进行重点搜索。 如果此搜索找到相对于当前聚焦的视图处于焦点方向的视图,则RecyclerView将该子视为下一个焦点目标。 当它找不到这样的孩子时,它调用onFocusSearchFailed(View, int, Recycler, State)在焦点搜索方向上布置更多视图。 如果LayoutManager添加一个匹配焦点搜索条件的视图,它将作为焦点搜索结果返回。 否则,RecyclerView将调用父级像处理常规ViewGroup一样处理焦点搜索。
当方向为FOCUS_FORWARD或FOCUS_BACKWARD ,如果适配器在对焦方向上有更多子对象,则未处于对焦方向的视图仍然是有效的对焦目标,该对象可能不是所需的行为。 为了处理这种情况,RecyclerView将焦点方向转换为绝对方向,并在该方向进行初步焦点搜索。 如果没有视图获得焦点,则在使用原始(相对)方向运行焦点搜索之前,它将调用onFocusSearchFailed(View, int, Recycler, State) 。 这允许RecyclerView为焦点搜索提供更好的候选,同时仍然允许视图系统从RecyclerView获得焦点,并且如果存在这样的小孩,则将其给予更合适的孩子。
Parameters
focused
View: The view that currently has focus
direction
int: One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_FORWARD, FOCUS_BACKWARD or 0 for not applicable.
Returns
View
A new View that can be the next focus after the focused View
generateLayoutParams
ViewGroup.LayoutParams generateLayoutParams (AttributeSet attrs)
根据提供的属性集返回一组新的布局参数。
Parameters
attrs
AttributeSet: the attributes to build the layout parameters from
Returns
ViewGroup.LayoutParams
an instance of ViewGroup.LayoutParams or one of its descendants
getAdapter
Adapter getAdapter ()
检索先前设置的适配器;如果未设置适配器,则返回null。
Returns
Adapter
The previously set adapter
也可以看看:
setAdapter(Adapter)
getBaseline
int getBaseline ()
将RecyclerView文本基线的偏移量从其顶部边界返回。 如果此RecyclerView的LayoutManager不支持基线对齐,则此方法返回-1。
Returns
int
the offset of the baseline within the RecyclerView's bounds or -1 if baseline alignment is not supported
getChildAdapterPosition
int getChildAdapterPosition (View child)
返回给定子视图对应的适配器位置。
Parameters
child
View: Child View to query
Returns
int
Adapter position corresponding to the given view or NO_POSITION
getChildItemId
long getChildItemId (View child)
返回给定子视图对应的稳定项目标识。
Parameters
child
View: Child View to query
Returns
long
Item id corresponding to the given view or NO_ID
getChildLayoutPosition
int getChildLayoutPosition (View child)
返回给定子视图的适配器位置以及最近完成的布局传递。
如果尚未反映到布局中的适配器有未决更改,则此位置可能不等于项目的适配器位置。
Parameters
child
View: Child View to query
Returns
int
Adapter position of the given View as of last layout pass or NO_POSITION if the View is representing a removed item.
getChildPosition
int getChildPosition (View child)
此方法已弃用。 使用getChildAdapterPosition(View)或getChildLayoutPosition(View) 。
Parameters
child
View
Returns
int
getChildViewHolder
RecyclerView.ViewHolder getChildViewHolder (View child)
检索给 RecyclerView.ViewHolder视图的 RecyclerView.ViewHolder 。
Parameters
child
View: Child of this RecyclerView to query for its ViewHolder
Returns
RecyclerView.ViewHolder
The child view's ViewHolder
getCompatAccessibilityDelegate
RecyclerViewAccessibilityDelegate getCompatAccessibilityDelegate ()
返回RecyclerView使用的可访问性委托兼容性实现。
Returns
RecyclerViewAccessibilityDelegate
An instance of AccessibilityDelegateCompat used by RecyclerView
getItemAnimator
RecyclerView.ItemAnimator getItemAnimator ()
获取此RecyclerView的当前ItemAnimator。 空返回值表示不存在动画制作者,并且该项目更改将在没有任何动画的情况下发生。 默认情况下,RecyclerView将实例化并使用DefaultItemAnimator的实例。
Returns
RecyclerView.ItemAnimator
ItemAnimator The current ItemAnimator. If null, no animations will occur when changes occur to the items in this RecyclerView.
getLayoutManager
RecyclerView.LayoutManager getLayoutManager ()
返回目前负责此RecyclerView布局策略的 RecyclerView.LayoutManager 。
Returns
RecyclerView.LayoutManager
The currently bound LayoutManager
getMaxFlingVelocity
int getMaxFlingVelocity ()
返回此RecyclerView使用的最大投掷速度。
Returns
int
The maximum fling velocity used by this RecyclerView.
getMinFlingVelocity
int getMinFlingVelocity ()
返回启动投掷的最低速度。
Returns
int
The minimum velocity to start a fling
getPreserveFocusAfterLayout
boolean getPreserveFocusAfterLayout ()
如果RecyclerView应该尝试保留当前聚焦的Adapter Item的焦点,即使在布局计算期间替换表示Item的View也会返回true。
默认情况下,此值为 true 。
Returns
boolean
True if the RecyclerView will try to preserve focused Item after a layout if it loses focus.
也可以看看:
setPreserveFocusAfterLayout(boolean)
getRecycledViewPool
RecyclerView.RecycledViewPool getRecycledViewPool ()
检索这个RecyclerView的RecyclerView.RecycledViewPool 。 这个方法永远不会返回null; 如果没有为该视图设置池,则会创建一个新池。 有关更多信息,请参阅setRecycledViewPool 。
Returns
RecyclerView.RecycledViewPool
The pool used to store recycled item views for reuse.
也可以看看:
setRecycledViewPool(RecycledViewPool)
getScrollState
int getScrollState ()
返回RecyclerView的当前滚动状态。
Returns
int
SCROLL_STATE_IDLE, SCROLL_STATE_DRAGGING or SCROLL_STATE_SETTLING
hasFixedSize
boolean hasFixedSize ()
Returns
boolean
true if the app has specified that changes in adapter content cannot change the size of the RecyclerView itself.
hasNestedScrollingParent
boolean hasNestedScrollingParent ()
如果此视图具有嵌套滚动父级,则返回true。
嵌套滚动父项的存在表示该视图已启动嵌套滚动,并且被视图层次结构的更上层的祖先视图接受。
Returns
boolean
whether this view has a nested scrolling parent
hasPendingAdapterUpdates
boolean hasPendingAdapterUpdates ()
返回是否有尚未应用于布局的待定适配器更新。
如果此方法返回true ,则表示用户当前正在查看的内容可能不会反映它们的适配器内容(取决于发生了什么变化)。 您可以使用此信息推迟或取消某些操作。
如果RecyclerView在连接到窗口或更换了适配器后尚未计算出第一个布局,则此方法返回true。
Returns
boolean
True if there are some adapter updates which are not yet reflected to layout or false if layout is up to date.
invalidateItemDecorations
void invalidateItemDecorations ()
使所有ItemDecorations无效。 如果RecyclerView具有项目装饰,调用此方法将触发requestLayout()调用。
isAnimating
boolean isAnimating ()
如果RecyclerView当前正在运行一些动画,则返回true。
如果您想在动画完成时收到通知,请使用 isRunning(ItemAnimator.ItemAnimatorFinishedListener) 。
Returns
boolean
True if there are some item animations currently running or waiting to be started.
isAttachedToWindow
boolean isAttachedToWindow ()
如果RecyclerView附加到窗口,则返回true。
Returns
boolean
isComputingLayout
boolean isComputingLayout ()
返回RecyclerView是否正在计算布局。
如果此方法返回true,则意味着RecyclerView处于锁定状态,并且任何尝试更新适配器内容都将导致异常,因为在RecyclerView尝试计算布局时无法更改适配器内容。
在这种状态下运行代码的可能性不大,因为当布局遍历发生时,或者RecyclerView开始滚动以响应系统事件(触摸,辅助功能等)时,框架会调用它。
如果您有一些自定义逻辑来更改适配器内容以响应在布局计算期间可能触发的View回调(例如焦点更改回调),则可能会发生这种情况。 在这些情况下,您应该使用Handler或类似机制推迟更改。
Returns
boolean
true if RecyclerView is currently computing a layout, false otherwise
isLayoutFrozen
boolean isLayoutFrozen ()
如果布局和滚动被冻结,则返回true。
Returns
boolean
true if layout and scroll are frozen
也可以看看:
setLayoutFrozen(boolean)
isNestedScrollingEnabled
boolean isNestedScrollingEnabled ()
如果对此视图启用嵌套滚动,则返回true。
如果启用了嵌套滚动并且此View类实现支持它,则该视图将在适用时充当嵌套滚动子视图,将有关正在进行的滚动操作的数据转发给兼容且协作的嵌套滚动父级。
Returns
boolean
true if nested scrolling is enabled
offsetChildrenHorizontal
void offsetChildrenHorizontal (int dx)
将所有子视图的边界偏移dx像素。 用于在LayoutManagers实现简单的滚动。
Parameters
dx
int: Horizontal pixel offset to apply to the bounds of all child views
offsetChildrenVertical
void offsetChildrenVertical (int dy)
将所有子视图的边界偏移dy像素。 用于在LayoutManagers实现简单的滚动。
Parameters
dy
int: Vertical pixel offset to apply to the bounds of all child views
onChildAttachedToWindow
void onChildAttachedToWindow (View child)
在项目视图附加到此RecyclerView时调用。
RecyclerView的子类可能希望在附加子视图时执行额外的簿记或修改。 这将在RecyclerView.LayoutManager测量或RecyclerView.LayoutManager视图之前调用,并且是执行这些更改的好时机。
Parameters
child
View: Child view that is now attached to this RecyclerView and its associated window
onChildDetachedFromWindow
void onChildDetachedFromWindow (View child)
在从此RecyclerView分离项目视图时调用。
RecyclerView的子类可能希望在子视图分离时执行额外的簿记或修改子视图。 这将被称为RecyclerView.LayoutManager完全分离父窗口和子窗口的子视图。
Parameters
child
View: Child view that is now detached from this RecyclerView and its associated window
onDraw
void onDraw (Canvas c)
实施这个来做你的绘画。
Parameters
c
Canvas: the canvas on which the background will be drawn
onGenericMotionEvent
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
boolean onInterceptTouchEvent (MotionEvent e)
实施此方法来拦截所有触摸屏幕动作事件。 这允许您在事件发送给您的孩子时观看事件,并在任何时候掌握当前手势的所有权。
使用这个函数需要注意,因为它与View.onTouchEvent(MotionEvent)有一个相当复杂的交互,并且使用它需要以正确的方式执行该方法。 活动将按以下顺序收到:
You will receive the down event here.
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.
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().
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
e
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.
onScrollStateChanged
void onScrollStateChanged (int state)
当此RecyclerView的滚动状态改变时调用。 子类应该使用此方法来响应状态更改而不是显式侦听器。
此方法将始终在侦听器之前调用,但在LayoutManager响应滚动状态更改之后调用。
Parameters
state
int: the new scroll state, one of SCROLL_STATE_IDLE, SCROLL_STATE_DRAGGING or SCROLL_STATE_SETTLING
onScrolled
void onScrolled (int dx,
int dy)
当此RecyclerView的滚动位置改变时调用。 子类应该使用此方法来响应适配器数据集内的滚动而不是显式侦听器。
此方法将始终在侦听器之前调用。 如果一个子类需要在滚动后但在听众跑之前执行任何额外的维护或簿记,这是一个很好的选择。
这与onScrollChanged(int, int, int, int)不同之处在于它接收适配器数据集内任一方向滚动的距离,而不是绝对滚动坐标。 由于RecyclerView无法从数据集中的任意点计算绝对滚动位置,因此onScrollChanged将始终收到与数据集滚动位置不对应的当前值getScrollX()和getScrollY() 。 但是,有些子类可能会选择将这些字段用作特殊偏移量。
Parameters
dx
int: horizontal distance scrolled in pixels
dy
int: vertical distance scrolled in pixels
onTouchEvent
boolean onTouchEvent (MotionEvent e)
实现此方法来处理触摸屏幕动作事件。
如果此方法用于检测点击操作,建议通过执行并调用performClick()来执行操作。 这将确保一致的系统行为,包括:
obeying click sound preferences
dispatching OnClickListener calls
handling ACTION_CLICK when accessibility features are enabled
Parameters
e
MotionEvent: The motion event.
Returns
boolean
True if the event was handled, false otherwise.
removeItemDecoration
void removeItemDecoration (RecyclerView.ItemDecoration decor)
从此RecyclerView中删除 RecyclerView.ItemDecoration 。
给定的装饰将不再影响项目视图的测量和绘制。
Parameters
decor
RecyclerView.ItemDecoration: Decoration to remove
也可以看看:
addItemDecoration(ItemDecoration)
removeOnChildAttachStateChangeListener
void removeOnChildAttachStateChangeListener (RecyclerView.OnChildAttachStateChangeListener listener)
从附加子状态侦听器列表中删除提供的侦听器。
Parameters
listener
RecyclerView.OnChildAttachStateChangeListener: Listener to unregister
removeOnItemTouchListener
void removeOnItemTouchListener (RecyclerView.OnItemTouchListener listener)
删除RecyclerView.OnItemTouchListener 。 它将不再能够拦截触摸事件。
Parameters
listener
RecyclerView.OnItemTouchListener: Listener to remove
removeOnScrollListener
void removeOnScrollListener (RecyclerView.OnScrollListener listener)
移除已通知滚动状态或位置发生任何更改的侦听器。
Parameters
listener
RecyclerView.OnScrollListener: listener to set or null to clear
requestChildFocus
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
boolean requestChildRectangleOnScreen (View child,
Rect rect,
boolean immediate)
当该组的小孩想要将特定矩形定位到屏幕上时调用。 ViewGroup重写这可以相信:
child will be a direct child of this group
rectangle will be in the child's content coordinates
ViewGroup压倒一切应该维护合同:
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.
rect
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
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
void requestLayout ()
当事情发生变化时调用它,这已经使这个视图的布局无效。 这将安排视图树的布局传递。 当视图层次结构当前处于布局阶段时,不应调用此视图层次结构( isInLayout() 。如果isInLayout()布局,则可以在当前布局阶段结束时接受请求(然后布局将再次运行),或者在当前帧结束之后绘制并发生下一个布局。
覆盖此方法的子类应调用超类方法以正确处理可能的布局错误请求。
scrollBy
void scrollBy (int x,
int y)
移动视图的滚动位置。 这将导致致电onScrollChanged(int, int, int, int) ,该视图将失效。
Parameters
x
int: the amount of pixels to scroll by horizontally
y
int: the amount of pixels to scroll by vertically
scrollTo
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
scrollToPosition
void scrollToPosition (int position)
便捷方法滚动到某个位置。 RecyclerView不实现滚动逻辑,而是将呼叫转发到scrollToPosition(int)
Parameters
position
int: Scroll to this adapter position
也可以看看:
scrollToPosition(int)
sendAccessibilityEventUnchecked
void sendAccessibilityEventUnchecked (AccessibilityEvent event)
此方法的行为与 sendAccessibilityEvent(int)完全相同,但将空白 AccessibilityEvent作为参数,并且不会检查是否启用辅助功能。
如果 View.AccessibilityDelegate已通过调用指定 setAccessibilityDelegate(AccessibilityDelegate)其 sendAccessibilityEventUnchecked(View, AccessibilityEvent)负责处理此调用。
Parameters
event
AccessibilityEvent: The event to send.
setAccessibilityDelegateCompat
void setAccessibilityDelegateCompat (RecyclerViewAccessibilityDelegate accessibilityDelegate)
设置RecyclerView使用的可访问性委托兼容性实现。
Parameters
accessibilityDelegate
RecyclerViewAccessibilityDelegate: The accessibility delegate to be used by RecyclerView.
setAdapter
void setAdapter (Adapter adapter)
设置新的适配器以按需提供子视图。
当适配器发生变化时,所有现有的视图都会被循环回池中。 如果池只有一个适配器,它将被清除。
Parameters
adapter
Adapter: The new adapter to set, or null to set no adapter.
也可以看看:
swapAdapter(Adapter, boolean)
setChildDrawingOrderCallback
void setChildDrawingOrderCallback (RecyclerView.ChildDrawingOrderCallback childDrawingOrderCallback)
设置用于绘制儿童的 RecyclerView.ChildDrawingOrderCallback 。
有关详细信息,请参阅getChildDrawingOrder(int, int) 。 调用此方法将始终调用setChildrenDrawingOrderEnabled(boolean) 。 如果childDrawingOrderCallback不为null,则该参数为true,否则为false。
请注意,View的高程可能会覆盖子级绘制顺序。
Parameters
childDrawingOrderCallback
RecyclerView.ChildDrawingOrderCallback: The ChildDrawingOrderCallback to be used by the drawing system.
setClipToPadding
void setClipToPadding (boolean clipToPadding)
设置此ViewGroup是否将其子对象填充到其填充中,并将存在填充的任何EdgeEffect调整大小(但不剪切)到填充区域。
默认情况下,子项被剪裁到其父ViewGroup的填充。 此裁剪行为仅在填充不为零时启用。
Parameters
clipToPadding
boolean: true to clip children to the padding of the group, and resize (but not clip) any EdgeEffect to the padded region. False otherwise.
setHasFixedSize
void setHasFixedSize (boolean hasFixedSize)
如果RecyclerView可以预先知道RecyclerView的大小不受适配器内容的影响,它可以执行多次优化。 RecyclerView仍然可以根据其他因素(例如其父级的大小)更改其大小,但此大小的计算不能取决于子级的大小或其适配器的内容(适配器中的项目数量除外)。
如果您使用RecyclerView属于此类别,请将其设置为true 。 它将允许RecyclerView在适配器内容更改时避免使整个布局无效。
Parameters
hasFixedSize
boolean: true if adapter changes cannot affect the size of the RecyclerView.
setItemAnimator
void setItemAnimator (RecyclerView.ItemAnimator animator)
设置将处理动画的RecyclerView.ItemAnimator ,这些动画涉及对此RecyclerView中项目的更改。 默认情况下,RecyclerView将实例化并使用DefaultItemAnimator的实例。 是否为RecyclerView启用项目动画取决于ItemAnimator以及LayoutManager supports item animations 。
Parameters
animator
RecyclerView.ItemAnimator: The ItemAnimator being set. If null, no animations will occur when changes occur to the items in this RecyclerView.
setItemViewCacheSize
void setItemViewCacheSize (int size)
在将它们添加到可能共享的 recycled view pool之前,设置要保留的屏幕外视图的数量。
离屏视图缓存保持了解连接适配器的变化,允许LayoutManager在未经修改的情况下重用这些视图,而无需返回适配器来重新绑定它们。
Parameters
size
int: Number of views to cache offscreen before returning them to the general recycled view pool
setLayoutFrozen
void setLayoutFrozen (boolean frozen)
启用或禁用布局和滚动。 在setLayoutFrozen(true)之后,布局请求将被推迟,直到setLayoutFrozen(false) ; 不更新子视图时RecyclerView被冻结, smoothScrollBy(int, int) , scrollBy(int, int) , scrollToPosition(int)和smoothScrollToPosition(int)被丢弃; TouchEvents和GenericMotionEvents被删除; onFocusSearchFailed(View, int, Recycler, State)将不会被调用。
setLayoutFrozen(true)不会阻止应用程序的直接调用 scrollToPosition(int) , smoothScrollToPosition(RecyclerView, State, int) 。
setAdapter(Adapter)和 swapAdapter(Adapter, boolean)将自动停止冻结。
注意:运行ItemAnimator不会自动停止,调用者有责任调用ItemAnimator.end()。
Parameters
frozen
boolean: true to freeze layout and scroll, false to re-enable.
setLayoutManager
void setLayoutManager (RecyclerView.LayoutManager layout)
设置此RecyclerView将使用的 RecyclerView.LayoutManager 。
与其他适配器支持的视图(如ListView或GridView ,RecyclerView允许客户端代码为子视图提供自定义布局安排。 这些安排由RecyclerView.LayoutManager控制。 必须提供LayoutManager以使RecyclerView正常工作。
为常见用途提供了几种默认策略,如列表和网格。
Parameters
layout
RecyclerView.LayoutManager: LayoutManager to use
setNestedScrollingEnabled
void setNestedScrollingEnabled (boolean enabled)
启用或禁用此视图的嵌套滚动。
如果此属性设置为true,则视图将被允许在当前层次结构中使用兼容父视图启动嵌套滚动操作。 如果这个视图没有实现嵌套滚动,这将不起作用。 嵌套滚动正在进行时禁用嵌套滚动具有stopping嵌套滚动的效果。
Parameters
enabled
boolean: true to enable nested scrolling, false to disable
setOnScrollListener
void setOnScrollListener (RecyclerView.OnScrollListener listener)
此方法已弃用。 使用addOnScrollListener(OnScrollListener)和removeOnScrollListener(OnScrollListener)
设置一个监听器,它将被通知滚动状态或位置的任何变化。
Parameters
listener
RecyclerView.OnScrollListener: Listener to set or null to clear
setPreserveFocusAfterLayout
void setPreserveFocusAfterLayout (boolean preserveFocusAfterLayout)
设置RecyclerView是否应该尝试在布局计算之后保留相同的项目。
通常,布局管理器会在布局前后保持焦点视图可见,但有时视图可能会在布局计算中失去焦点,因为它们的状态会发生变化,或者由于类型更改或动画而被替换为另一视图。 在这些情况下,RecyclerView可以自动请求关注新视图。
Parameters
preserveFocusAfterLayout
boolean: Whether RecyclerView should preserve focused Item during a layout calculations. Defaults to true.
也可以看看:
getPreserveFocusAfterLayout()
setRecycledViewPool
void setRecycledViewPool (RecyclerView.RecycledViewPool pool)
回收视图池允许多个RecyclerView共享一个公共的废料视图池。 如果您有多个使用相同视图类型的适配器的RecyclerView,这可能很有用,例如,如果您有几个数据集,并且ViewPager显示的项目视图类型相同。
Parameters
pool
RecyclerView.RecycledViewPool: Pool to set. If this parameter is null a new pool will be created and used.
setRecyclerListener
void setRecyclerListener (RecyclerView.RecyclerListener listener)
注册一个侦听器,每当子视图被回收时都会被通知。
当LayoutManager或RecyclerView决定不再需要子视图时,将调用此侦听器。 如果应用程序将昂贵或重量级数据与项目视图相关联,则这可能是发布或释放这些资源的好地方。
Parameters
listener
RecyclerView.RecyclerListener: Listener to register, or null to clear
setScrollingTouchSlop
void setScrollingTouchSlop (int slopConstant)
为特定用例配置滚动触摸边框。 根据常用用途设置RecyclerView的滚动运动阈值。 有效的参数是TOUCH_SLOP_DEFAULT和TOUCH_SLOP_PAGING 。
Parameters
slopConstant
int: One of the TOUCH_SLOP_ constants representing the intended usage of this RecyclerView
setViewCacheExtension
void setViewCacheExtension (RecyclerView.ViewCacheExtension extension)
设置一个新的 RecyclerView.ViewCacheExtension由Recycler使用。
Parameters
extension
RecyclerView.ViewCacheExtension: ViewCacheExtension to be used or null if you want to clear the existing one.
也可以看看:
ERROR(ViewCacheExtension#getViewForPositionAndType(Recycler, int, int)} /{@link ViewCacheExtension#getViewForPositionAndType(Recycler, int, int)})
smoothScrollBy
void smoothScrollBy (int dx,
int dy)
沿任一轴按给定数量的像素动画滚动。
Parameters
dx
int: Pixels to scroll horizontally
dy
int: Pixels to scroll vertically
smoothScrollToPosition
void smoothScrollToPosition (int position)
开始平滑滚动到适配器位置。
要支持平滑滚动,您必须覆盖 smoothScrollToPosition(RecyclerView, State, int)并创建一个 RecyclerView.SmoothScroller 。
RecyclerView.LayoutManager负责创建实际的滚动操作。 如果您想提供自定义平滑滚动逻辑, smoothScrollToPosition(RecyclerView, State, int)在LayoutManager中覆盖smoothScrollToPosition(RecyclerView, State, int) 。
Parameters
position
int: The adapter position to scroll to
也可以看看:
smoothScrollToPosition(RecyclerView, State, int)
startNestedScroll
boolean startNestedScroll (int axes)
沿给定轴开始可嵌套滚动操作。
开始嵌套滚动的视图承诺遵守以下合同:
该视图将在启动滚动操作时调用startNestedScroll。 在触摸滚动的情况下,这对应于最初的ACTION_DOWN 。 在触摸滚动的情况下,嵌套滚动将以与requestDisallowInterceptTouchEvent(boolean)相同的方式自动终止。 在编程滚动的情况下,调用者必须显式调用stopNestedScroll()来指示嵌套滚动的结束。
如果startNestedScroll返回true,则找到合作父项。 如果返回false,则在下一次滚动之前,调用方可能会忽略此合约的其余部分。 当嵌套滚动正在进行时调用startNestedScroll将返回true。
在滚动的每个增量步骤中,一旦计算出请求的滚动增量,调用者就应该调用dispatchNestedPreScroll 。 如果它返回true,则嵌套滚动父级至少部分消耗滚动,并且调用者应该调整它滚动的数量。
在应用剩余的滚动增量之后,调用者应该调用dispatchNestedScroll ,同时传递消耗的delta和未消耗的delta。 嵌套的滚动父级可能会以不同的方式处理这些值。 见onNestedScroll(View, int, int, int, int) 。
Parameters
axes
int: Flags consisting of a combination of SCROLL_AXIS_HORIZONTAL and/or SCROLL_AXIS_VERTICAL.
Returns
boolean
true if a cooperative parent was found and nested scrolling has been enabled for the current gesture.
stopNestedScroll
void stopNestedScroll ()
停止正在进行的嵌套滚动。
当嵌套滚动当前不在进行中时调用此方法是无害的。
stopScroll
void stopScroll ()
停止正在进行的任何当前滚动,例如由 smoothScrollBy(int, int)开始的 fling(int, int)或由触发发起的一次滚动。
swapAdapter
void swapAdapter (Adapter adapter,
boolean removeAndRecycleExistingViews)
用提供的交换机替换当前的适配器。 它类似于setAdapter(Adapter)但假定现有适配器和新适配器使用相同的RecyclerView.ViewHolder ,并且不清除RecycledViewPool。
请注意,它仍然会调用AdapterChanged回调函数。
Parameters
adapter
Adapter: The new adapter to set, or null to set no adapter.
removeAndRecycleExistingViews
boolean: If set to true, RecyclerView will recycle all existing Views. If adapters have stable ids and/or you want to animate the disappearing views, you may prefer to set this to false.
也可以看看:
setAdapter(Adapter)
Protected methods
checkLayoutParams
boolean checkLayoutParams (ViewGroup.LayoutParams p)
Parameters
p
ViewGroup.LayoutParams
Returns
boolean
dispatchRestoreInstanceState
void dispatchRestoreInstanceState (SparseArray
覆盖以防止适配器创建的任何视图解冻。
Parameters
container
SparseArray: The SparseArray which holds previously saved state.
dispatchSaveInstanceState
void dispatchSaveInstanceState (SparseArray
覆盖以防止冻结由适配器创建的任何视图。
Parameters
container
SparseArray: The SparseArray in which to save the view's state.
generateDefaultLayoutParams
ViewGroup.LayoutParams generateDefaultLayoutParams ()
返回一组默认布局参数。 当传递给addView(View)的视图没有设置布局参数时,请求这些参数。 如果返回null,则会从addView引发异常。
Returns
ViewGroup.LayoutParams
a set of default layout parameters or null
generateLayoutParams
ViewGroup.LayoutParams generateLayoutParams (ViewGroup.LayoutParams p)
根据提供的布局参数返回一组安全的布局参数。 当ViewGroup传递一个View,其布局参数不能通过checkLayoutParams(android.view.ViewGroup.LayoutParams)的测试时,调用此方法。 此方法应该返回一组适合此ViewGroup的布局参数,可能是通过从指定的一组布局参数中复制适当的属性。
Parameters
p
ViewGroup.LayoutParams: The layout parameters to convert into a suitable set of layout parameters for this ViewGroup.
Returns
ViewGroup.LayoutParams
an instance of ViewGroup.LayoutParams or one of its descendants
getChildDrawingOrder
int getChildDrawingOrder (int childCount,
int i)
返回为此迭代绘制的子的索引。 如果要更改儿童的绘图顺序,请覆盖此选项。 默认情况下,它返回i。
注:为了调用此方法,您必须首先通过调用 setChildrenDrawingOrderEnabled(boolean)来启用子订单。
Parameters
childCount
int
i
int: The current iteration.
Returns
int
The index of the child to draw this iteration.
onAttachedToWindow
void onAttachedToWindow ()
这在视图附加到窗口时被调用。 此时它有一个Surface并将开始绘制。 注意这个函数保证在onDraw(android.graphics.Canvas)之前被调用,但是它可以在第一个onDraw之前的任何时候被调用,包括在onMeasure(int, int)之前或之后。
onDetachedFromWindow
void onDetachedFromWindow ()
这是在视图从窗口分离时调用的。 此时它不再有绘图表面。
onLayout
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
void onMeasure (int widthSpec,
int heightSpec)
测量视图及其内容以确定测量宽度和测量高度。 此方法由measure(int, int)调用, measure(int, int)子类覆盖以提供其内容的准确和有效的度量。
合同:覆盖此方法时,您必须致电setMeasuredDimension(int, int)来存储此视图的测量宽度和高度。 如果不这样做,将触发IllegalStateException ,由measure(int, int)引发。 调用超类' onMeasure(int, int)是一种有效的用法。
Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应覆盖onMeasure(int, int)以提供更好的内容度量。
如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()和 getSuggestedMinimumWidth() )。
Parameters
widthSpec
int: horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightSpec
int: vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
onRequestFocusInDescendants
boolean onRequestFocusInDescendants (int direction,
Rect previouslyFocusedRect)
找一个后裔打电话给requestFocus() 。 当它想要在其子女内请求焦点时由requestFocus(int, android.graphics.Rect)调用。 重写此操作可以自定义您的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
void onRestoreInstanceState (Parcelable state)
吊钩允许视图重新应用以前由onSaveInstanceState()生成的内部状态的表示。 这个函数永远不会被调用为null状态。
Parameters
state
Parcelable: The frozen state that had previously been returned by onSaveInstanceState().
onSaveInstanceState
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
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.
removeDetachedView
void removeDetachedView (View child,
boolean animate)
完成删除分离的视图。 此方法将分派脱离窗口事件并通知层次结构更改侦听器。
这种方法的目的是轻量级的,并且不会假定父母或孩子是否应该重绘。 正确使用此方法还将包括进行任何适当的requestLayout()或invalidate()调用。 例如,调用者可以在post和Runnable执行requestLayout() ,在所有分离/移除调用完成后在下一帧执行requestLayout() ,从而导致在重新绘制视图层次结构之前运行布局。
Parameters
child
View: the child to be definitely removed from the view hierarchy
animate
boolean: if true and the view has an animation, the view is placed in the disappearing views list, otherwise, it is detached from the window