Most visited

Recently visited

Added in API level 1

ListView

public class ListView
extends AbsListView

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.AdapterView<android.widget.ListAdapter>
         ↳ android.widget.AbsListView
           ↳ android.widget.ListView
Known Direct Subclasses


显示垂直滚动列表中的项目的视图。 这些项目来自与此视图相关的ListAdapter

请参阅 List View指南。

Summary

Nested classes

class ListView.FixedViewInfo

表示列表中固定视图的类,例如顶部的标题或底部的页脚。

XML attributes

android:divider Drawable or color to draw between list items. 
android:divider Drawable or color to draw between list items. 
android:dividerHeight Height of the divider. 
android:entries Reference to an array resource that will populate the ListView. 
android:footerDividersEnabled When set to false, the ListView will not draw the divider before each footer view. 
android:headerDividersEnabled When set to false, the ListView will not draw the divider after each header view. 

Inherited XML attributes

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

Inherited constants

From class android.widget.AbsListView
From class android.widget.AdapterView
From class android.view.ViewGroup
From class android.view.View

Inherited fields

From class android.view.View

Public constructors

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

Public methods

void addFooterView(View v, Object data, boolean isSelectable)

添加一个固定的视图出现在列表的底部。

void addFooterView(View v)

添加一个固定的视图出现在列表的底部。

void addHeaderView(View v, Object data, boolean isSelectable)

添加固定视图以显示在列表顶部。

void addHeaderView(View v)

添加固定视图以显示在列表顶部。

boolean areFooterDividersEnabled()
boolean areHeaderDividersEnabled()
boolean dispatchKeyEvent(KeyEvent event)

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

CharSequence getAccessibilityClassName()

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

ListAdapter getAdapter()

返回此ListView中当前正在使用的适配器。

long[] getCheckItemIds()

此方法在API级别8中已弃用。请改为使用getCheckedItemIds()

Drawable getDivider()

返回将在列表中的每个项目之间绘制的drawable。

int getDividerHeight()
int getFooterViewsCount()

返回列表中页脚视图的数量。

int getHeaderViewsCount()

返回列表中标题视图的数量。

boolean getItemsCanFocus()
int getMaxScrollAmount()
Drawable getOverscrollFooter()
Drawable getOverscrollHeader()
boolean isOpaque()

指示此视图是否不透明。

void onInitializeAccessibilityNodeInfoForItem(View view, int position, AccessibilityNodeInfo info)

使用有关列表中特定项目的信息初始化 AccessibilityNodeInfo

boolean onKeyDown(int keyCode, KeyEvent event)

KeyEvent.Callback.onKeyDown()默认实现:当 KEYCODE_DPAD_CENTERKEYCODE_ENTER被释放时,如果视图已启用并且可点击,则执行按下视图。

boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)

默认实现 KeyEvent.Callback.onKeyMultiple() :始终返回false(不处理事件)。

boolean onKeyUp(int keyCode, KeyEvent event)

的默认实现 KeyEvent.Callback.onKeyUp() :当视图进行点击 KEYCODE_DPAD_CENTERKEYCODE_ENTER或者 KEYCODE_SPACE被释放。

boolean removeFooterView(View v)

删除以前添加的页脚视图。

boolean removeHeaderView(View v)

删除以前添加的标题视图。

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

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

void setAdapter(ListAdapter adapter)

设置此ListView背后的数据。

void setCacheColorHint(int color)

当设置为非零值时,缓存颜色提示表明此列表总是绘制在纯色,单色,不透明背景的顶部。

void setDivider(Drawable divider)

设置将在列表中的每个项目之间绘制的drawable。

void setDividerHeight(int height)

设置将在列表中的每个项目之间绘制的分隔线的高度。

void setFooterDividersEnabled(boolean footerDividersEnabled)

启用或禁用页脚视图的分隔线的绘制。

void setHeaderDividersEnabled(boolean headerDividersEnabled)

启用或禁用标题视图的分隔线的绘制。

void setItemsCanFocus(boolean itemsCanFocus)

指示由ListAdapter创建的视图可以包含可聚焦项目。

void setOverscrollFooter(Drawable footer)

设置将绘制在所有其他列表内容下的drawable。

void setOverscrollHeader(Drawable header)

设置将绘制在所有其他列表内容之上的drawable。

void setRemoteViewsAdapter(Intent intent)

设置此AbsListView以使用通过指定意图连接到RemoteViewsService的远程视图适配器。

void setSelection(int position)

设置当前选择的项目。

void setSelectionAfterHeaderView()

setSelectionAfterHeaderView将选择设置为标题视图之后的第一个列表项。

void smoothScrollByOffset(int offset)

平滑地滚动到指定的适配器位置偏移量。

void smoothScrollToPosition(int position)

平滑地滚动到指定的适配器位置。

Protected methods

boolean canAnimate()

指示视图组是否能够在第一个布局之后为其子项设置动画。

void dispatchDraw(Canvas canvas)

通过绘制来绘制子视图。

boolean drawChild(Canvas canvas, View child, long drawingTime)

绘制这个视图组的一个孩子。

View findViewTraversal(int id)

View findViewWithTagTraversal(Object tag)

void layoutChildren()

子类必须重写此方法来布局他们的子项。

void onDetachedFromWindow()

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

void onFinishInflate()

最终确定从XML扩展视图。

void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect)

当视图的焦点状态改变时,由视图系统调用。

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

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

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

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

Inherited methods

From class android.widget.AbsListView
From class android.widget.AdapterView
From class android.view.ViewGroup
From class android.view.View
From class java.lang.Object
From interface android.text.TextWatcher
From interface android.view.ViewTreeObserver.OnGlobalLayoutListener
From interface android.widget.Filter.FilterListener
From interface android.view.ViewTreeObserver.OnTouchModeChangeListener
From interface android.view.ViewParent
From interface android.view.ViewManager
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource

XML attributes

android:divider

在列表项目之间绘制或绘制颜色。

可能是另一种资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

可以是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

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

android:divider

在列表项目之间绘制或绘制颜色。

可能是另一种资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

可以是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

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

相关方法:

android:dividerHeight

分隔线的高度。 如果未指定,将使用分隔符的固有高度。

必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

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

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

android:entries

引用将填充ListView的数组资源。 对于静态内容,这比以编程方式填充ListView更简单。

必须是另一个资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

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

android:footerDividersEnabled

当设置为false时,ListView将不会在每个页脚视图之前绘制分隔线。 默认值是true。

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

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

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

android:headerDividersEnabled

当设置为false时,ListView将不会在每个标题视图之后绘制分隔符。 默认值是true。

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

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

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

Public constructors

ListView

Added in API level 1
ListView (Context context)

Parameters
context Context

ListView

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

Parameters
context Context
attrs AttributeSet

ListView

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

Parameters
context Context
attrs AttributeSet
defStyleAttr int

ListView

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

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

addFooterView

Added in API level 1
void addFooterView (View v, 
                Object data, 
                boolean isSelectable)

添加一个固定的视图出现在列表的底部。 如果不止一次调用addFooterView,视图将按照它们添加的顺序显示。 如果他们想要,使用此调用添加的视图可以关注焦点。

注意:首次引入时,只能在使用setAdapter(ListAdapter)设置适配器之前调用此方法。 KITKAT开始,可以随时调用此方法。 如果ListView的适配器没有扩展HeaderViewListAdapter ,它将被包装在WrapperListAdapter的支持实例中。

Parameters
v View: The view to add.
data Object: Data to associate with this view
isSelectable boolean: true if the footer view can be selected

addFooterView

Added in API level 1
void addFooterView (View v)

添加一个固定的视图出现在列表的底部。 如果不止一次调用addFooterView,视图将按照它们添加的顺序显示。 如果他们想要,使用此调用添加的视图可以关注焦点。

注意:首次引入时,只能在使用setAdapter(ListAdapter)设置适配器之前调用此方法。 KITKAT开始,可以随时调用此方法。 如果ListView的适配器没有扩展HeaderViewListAdapter ,它将被包装在一个支持实例WrapperListAdapter

Parameters
v View: The view to add.

addHeaderView

Added in API level 1
void addHeaderView (View v, 
                Object data, 
                boolean isSelectable)

添加固定视图以显示在列表顶部。 如果多次调用此方法,视图将按照它们添加的顺序显示。 如果他们想要,使用此调用添加的视图可以关注焦点。

注意:首次引入时,只能在使用setAdapter(ListAdapter)设置适配器之前调用此方法。 KITKAT开始,可以随时调用此方法。 如果ListView的适配器不能扩展HeaderViewListAdapter ,它将被包装在一个支持的实例WrapperListAdapter

Parameters
v View: The view to add.
data Object: Data to associate with this view
isSelectable boolean: whether the item is selectable

addHeaderView

Added in API level 1
void addHeaderView (View v)

添加固定视图以显示在列表顶部。 如果不止一次调用addHeaderView,视图将按照它们的添加顺序显示。 如果他们想要,使用此调用添加的视图可以关注焦点。

注意:首次引入时,只能在使用setAdapter(ListAdapter)设置适配器之前调用此方法。 KITKAT开始,可以随时调用此方法。 如果ListView的适配器没有扩展HeaderViewListAdapter ,它将被包装在WrapperListAdapter的支持实例中。

Parameters
v View: The view to add.

areFooterDividersEnabled

Added in API level 19
boolean areFooterDividersEnabled ()

Returns
boolean Whether the drawing of the divider for footer views is enabled

也可以看看:

areHeaderDividersEnabled

Added in API level 19
boolean areHeaderDividersEnabled ()

Returns
boolean Whether the drawing of the divider for header views is enabled

也可以看看:

dispatchKeyEvent

Added in API level 1
boolean dispatchKeyEvent (KeyEvent event)

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

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

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

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

Returns
CharSequence

getAdapter

Added in API level 1
ListAdapter getAdapter ()

返回此ListView中当前正在使用的适配器。 返回的适配器可能与传递给setAdapter(ListAdapter)适配器setAdapter(ListAdapter)但可能是WrapperListAdapter

Returns
ListAdapter The adapter currently used to display data in this ListView.

也可以看看:

getCheckItemIds

Added in API level 4
long[] getCheckItemIds ()

此方法在API级别8中已被弃用。
改为使用getCheckedItemIds()

返回检查项目标识的集合。 结果仅在选择模式未设置为CHOICE_MODE_NONE

Returns
long[] A new array which contains the id of each checked item in the list.

getDivider

Added in API level 1
Drawable getDivider ()

返回将在列表中的每个项目之间绘制的drawable。

相关XML属性:

Returns
Drawable the current drawable drawn between list elements

getDividerHeight

Added in API level 1
int getDividerHeight ()

Returns
int Returns the height of the divider that will be drawn between each item in the list.

getFooterViewsCount

Added in API level 1
int getFooterViewsCount ()

返回列表中页脚视图的数量。 页脚视图是列表底部的特殊视图,在布局过程中不应回收。

Returns
int The number of footer views, 0 in the default implementation.

getHeaderViewsCount

Added in API level 1
int getHeaderViewsCount ()

返回列表中标题视图的数量。 标题视图是列表顶部的特殊视图,在布局过程中不应回收。

Returns
int The number of header views, 0 in the default implementation.

getItemsCanFocus

Added in API level 1
boolean getItemsCanFocus ()

Returns
boolean Whether the views created by the ListAdapter can contain focusable items.

getMaxScrollAmount

Added in API level 1
int getMaxScrollAmount ()

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

getOverscrollFooter

Added in API level 9
Drawable getOverscrollFooter ()

Returns
Drawable The drawable that will be drawn below all other list content

getOverscrollHeader

Added in API level 9
Drawable getOverscrollHeader ()

Returns
Drawable The drawable that will be drawn above all other list content

isOpaque

Added in API level 7
boolean isOpaque ()

指示此视图是否不透明。 不透明视图保证它将使用完全不透明的颜色绘制所有像素重叠的边界。 视图的子类应尽可能覆盖此方法,以指示实例是否不透明。 不透明视图被视图层次以特殊方式处理,可能允许它在无效/绘制过程中执行优化。

Returns
boolean True if this View is guaranteed to be fully opaque, false otherwise.

onInitializeAccessibilityNodeInfoForItem

Added in API level 19
void onInitializeAccessibilityNodeInfoForItem (View view, 
                int position, 
                AccessibilityNodeInfo info)

使用有关列表中特定项目的信息初始化 AccessibilityNodeInfo

Parameters
view View: View representing the list item.
position int: Position of the list item within the adapter.
info AccessibilityNodeInfo: Node info to populate.

onKeyDown

Added in API level 1
boolean onKeyDown (int keyCode, 
                KeyEvent event)

KeyEvent.Callback.onKeyDown()默认实现:当 KEYCODE_DPAD_CENTERKEYCODE_ENTER被释放时,如果视图被启用并且可点击,则执行按下视图。

软件键盘中的按键通常不会触发这个监听器,尽管在某些情况下有些人会选择这样做。 不要依靠这个来捕捉软件按键。

Parameters
keyCode int: a key code that represents the button pressed, from KeyEvent
event KeyEvent: the KeyEvent object that defines the button action
Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

onKeyMultiple

Added in API level 1
boolean onKeyMultiple (int keyCode, 
                int repeatCount, 
                KeyEvent event)

默认实现 KeyEvent.Callback.onKeyMultiple() :始终返回false(不处理事件)。

软件键盘中的按键通常不会触发这个监听器,尽管在某些情况下有些人会选择这样做。 不要依靠这个来捕捉软件按键。

Parameters
keyCode int: A key code that represents the button pressed, from KeyEvent.
repeatCount int: The number of times the action was made.
event KeyEvent: The KeyEvent object that defines the button action.
Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

onKeyUp

Added in API level 1
boolean onKeyUp (int keyCode, 
                KeyEvent event)

的默认实现 KeyEvent.Callback.onKeyUp() :当视图进行点击 KEYCODE_DPAD_CENTERKEYCODE_ENTER或者 KEYCODE_SPACE被释放。

软件键盘中的按键通常不会触发这个监听器,尽管在某些情况下有些人会选择这样做。 不要依靠这个来捕捉软件按键。

Parameters
keyCode int: A key code that represents the button pressed, from KeyEvent.
event KeyEvent: The KeyEvent object that defines the button action.
Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

removeFooterView

Added in API level 1
boolean removeFooterView (View v)

删除以前添加的页脚视图。

Parameters
v View: The view to remove
Returns
boolean true if the view was removed, false if the view was not a footer view

removeHeaderView

Added in API level 1
boolean removeHeaderView (View v)

删除以前添加的标题视图。

Parameters
v View: The view to remove
Returns
boolean true if the view was removed, false if the view was not a header view

requestChildRectangleOnScreen

Added in API level 1
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 s压倒一切应该维护合同:

  • nothing will change if the rectangle is already visible
  • the view port will be scrolled only just enough to make the rectangle visible
    • Parameters
      child View: The direct child making the request.
      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

setAdapter

Added in API level 1
void setAdapter (ListAdapter adapter)

设置此ListView背后的数据。 传递给此方法的适配器可能由WrapperListAdapter包装,具体取决于当前正在使用的ListView功能。 例如,添加页眉和/或页脚将导致适配器被包装。

Parameters
adapter ListAdapter: The ListAdapter which is responsible for maintaining the data backing this list and for producing a view to represent an item in that data set.

也可以看看:

setCacheColorHint

Added in API level 1
void setCacheColorHint (int color)

当设置为非零值时,缓存颜色提示表明此列表总是绘制在纯色,单色,不透明背景的顶部。 零意味着这个物体背后的是半透明的(非固体)或者不是由单一颜色构成的。 此提示不会影响此视图上设置的任何现有背景可绘制设置(通常通过setBackgroundDrawable(Drawable)设置)。

Parameters
color int: The background color

setDivider

Added in API level 1
void setDivider (Drawable divider)

设置将在列表中的每个项目之间绘制的drawable。

注意:如果drawable没有固有高度,则还应该调用 setDividerHeight(int)

相关XML属性:

Parameters
divider Drawable: the drawable to use

setDividerHeight

Added in API level 1
void setDividerHeight (int height)

设置将在列表中的每个项目之间绘制的分隔线的高度。 调用它将覆盖由setDivider(Drawable)设置的固有高度

Parameters
height int: The new height of the divider in pixels.

setFooterDividersEnabled

Added in API level 3
void setFooterDividersEnabled (boolean footerDividersEnabled)

启用或禁用页脚视图的分隔线的绘制。

Parameters
footerDividersEnabled boolean: True to draw the footers, false otherwise.

也可以看看:

setHeaderDividersEnabled

Added in API level 3
void setHeaderDividersEnabled (boolean headerDividersEnabled)

启用或禁用标题视图的分隔线的绘制。

Parameters
headerDividersEnabled boolean: True to draw the headers, false otherwise.

也可以看看:

setItemsCanFocus

Added in API level 1
void setItemsCanFocus (boolean itemsCanFocus)

指示由ListAdapter创建的视图可以包含可聚焦项目。

Parameters
itemsCanFocus boolean: true if items can get focus, false otherwise

setOverscrollFooter

Added in API level 9
void setOverscrollFooter (Drawable footer)

设置将绘制在所有其他列表内容下的drawable。 当用户超出列表的范围,或列表的内容未完全填充容器区域时,此区域可以显示。

Parameters
footer Drawable: The drawable to use

setOverscrollHeader

Added in API level 9
void setOverscrollHeader (Drawable header)

设置将绘制在所有其他列表内容之上的drawable。 当用户超出列表的范围时,该区域可以变得可见。

Parameters
header Drawable: The drawable to use

setRemoteViewsAdapter

Added in API level 11
void setRemoteViewsAdapter (Intent intent)

设置此AbsListView以使用通过指定意图连接到RemoteViewsService的远程视图适配器。

Parameters
intent Intent: the intent used to identify the RemoteViewsService for the adapter to connect to.

setSelection

Added in API level 1
void setSelection (int position)

设置当前选择的项目。 如果在触摸模式下,该项目不会被选中,但它仍然会被适当定位。 如果指定的选择位置小于0,则选择位置0处的项目。

Parameters
position int: Index (starting at 0) of the data item to be selected.

setSelectionAfterHeaderView

Added in API level 1
void setSelectionAfterHeaderView ()

setSelectionAfterHeaderView将选择设置为标题视图之后的第一个列表项。

smoothScrollByOffset

Added in API level 11
void smoothScrollByOffset (int offset)

平滑地滚动到指定的适配器位置偏移量。 视图将滚动显示指定的位置。

Parameters
offset int: The amount to offset from the adapter position to scroll to.

smoothScrollToPosition

Added in API level 8
void smoothScrollToPosition (int position)

平滑地滚动到指定的适配器位置。 视图将滚动显示指定的位置。

Parameters
position int: Scroll to this adapter position.

Protected methods

canAnimate

Added in API level 1
boolean canAnimate ()

指示视图组是否能够在第一个布局之后为其子项设置动画。

Returns
boolean true if the children can be animated, false otherwise

dispatchDraw

Added in API level 1
void dispatchDraw (Canvas canvas)

通过绘制来绘制子视图。 这可能会被派生类重写,以便在子对象被绘制之前获得控制权(但在绘制自己的视图之后)。

Parameters
canvas Canvas: the canvas on which to draw the view

drawChild

Added in API level 1
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

findViewTraversal

Added in API level 1
View findViewTraversal (int id)

Parameters
id int: the id of the view to be found
Returns
View the view of the specified id, null if cannot be found

findViewWithTagTraversal

Added in API level 1
View findViewWithTagTraversal (Object tag)

Parameters
tag Object: the tag of the view to be found
Returns
View the view of specified tag, null if cannot be found

layoutChildren

Added in API level 1
void layoutChildren ()

子类必须重写此方法来布局他们的子项。

onDetachedFromWindow

Added in API level 1
void onDetachedFromWindow ()

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

onFinishInflate

Added in API level 1
void onFinishInflate ()

最终确定从XML扩展视图。 这被称为通货膨胀的最后一个阶段,毕竟所有的孩子的观点已被添加。

即使子类重写onFinishInflate,他们也应该始终确保调用super方法,以便调用。

onFocusChanged

Added in API level 1
void onFocusChanged (boolean gainFocus, 
                int direction, 
                Rect previouslyFocusedRect)

当视图的焦点状态改变时,由视图系统调用。 当焦点更改事件是由方向导航导致的,direction和previouslyFocusedRect提供了焦点来自何处的洞察。 重写时,一定要调用超类,以便进行标准的焦点处理。

Parameters
gainFocus boolean: True if the View has focus; false otherwise.
direction int: The direction focus has moved when requestFocus() is called to give this view focus. Values are FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_FORWARD, or FOCUS_BACKWARD. It may not always apply, in which case use the default.
previouslyFocusedRect Rect: The rectangle, in this view's coordinate system, of the previously focused view. If applicable, this will be passed in as finer grained information about where the focus is coming from (in addition to direction). Will be null otherwise.

onMeasure

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

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

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

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

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

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

onSizeChanged

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

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

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

Hooray!