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指南。
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中已弃用。请改为使用 |
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) 使用有关列表中特定项目的信息初始化 |
boolean |
onKeyDown(int keyCode, KeyEvent event)
|
boolean |
onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) 默认实现 |
boolean |
onKeyUp(int keyCode, KeyEvent event) 的默认实现 |
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
|
在列表项目之间绘制或绘制颜色。
可能是另一种资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
可以是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这对应于全局属性资源符号 divider
。
在列表项目之间绘制或绘制颜色。
可能是另一种资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
可以是“ #rgb
”,“ #argb
”,“ #rrggbb
”或“ #aarrggbb
”形式的颜色值。
这对应于全局属性资源符号 divider
。
相关方法:
分隔线的高度。 如果未指定,将使用分隔符的固有高度。
必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。
这也可能是对包含此类型值的资源(形式为“ @[package:]type:name
”)或主题属性(形式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 dividerHeight
。
引用将填充ListView的数组资源。 对于静态内容,这比以编程方式填充ListView更简单。
必须是另一个资源的引用,其形式为“ @[+][package:]type:name
”,或者其形式为“一个主题属性 ?[package:][type:]name
”。
这对应于全局属性资源符号 entries
。
当设置为false时,ListView将不会在每个页脚视图之前绘制分隔线。 默认值是true。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(格式为“ @[package:]type:name
”)或主题属性(格式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 footerDividersEnabled
。
当设置为false时,ListView将不会在每个标题视图之后绘制分隔符。 默认值是true。
必须是布尔值,可以是“ true
”或“ false
”。
这也可能是对包含此类型值的资源(格式为“ @[package:]type:name
”)或主题属性(格式为“ ?[package:][type:]name
”)的 ?[package:][type:]name
。
这对应于全局属性资源符号 headerDividersEnabled
。
ListView (Context context, AttributeSet attrs)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
ListView (Context context, AttributeSet attrs, int defStyleAttr)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
defStyleAttr |
int
|
ListView (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
defStyleAttr |
int
|
defStyleRes |
int
|
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 |
void addFooterView (View v)
添加一个固定的视图出现在列表的底部。 如果不止一次调用addFooterView,视图将按照它们添加的顺序显示。 如果他们想要,使用此调用添加的视图可以关注焦点。
注意:首次引入时,只能在使用setAdapter(ListAdapter)
设置适配器之前调用此方法。 从KITKAT
开始,可以随时调用此方法。 如果ListView的适配器没有扩展HeaderViewListAdapter
,它将被包装在一个支持实例WrapperListAdapter
。
Parameters | |
---|---|
v |
View : The view to add. |
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 |
void addHeaderView (View v)
添加固定视图以显示在列表顶部。 如果不止一次调用addHeaderView,视图将按照它们的添加顺序显示。 如果他们想要,使用此调用添加的视图可以关注焦点。
注意:首次引入时,只能在使用setAdapter(ListAdapter)
设置适配器之前调用此方法。 从KITKAT
开始,可以随时调用此方法。 如果ListView的适配器没有扩展HeaderViewListAdapter
,它将被包装在WrapperListAdapter
的支持实例中。
Parameters | |
---|---|
v |
View : The view to add. |
boolean areFooterDividersEnabled ()
Returns | |
---|---|
boolean |
Whether the drawing of the divider for footer views is enabled |
boolean areHeaderDividersEnabled ()
Returns | |
---|---|
boolean |
Whether the drawing of the divider for header views is enabled |
boolean dispatchKeyEvent (KeyEvent event)
将关键事件分派到焦点路径上的下一个视图。 此路径从视图树的顶部向下延伸到当前聚焦的视图。 如果这个观点有重点,它会发送给自己。 否则,它将沿着焦点路径调度下一个节点。 这个方法也会触发任何关键的监听器。
Parameters | |
---|---|
event |
KeyEvent : The key event to be dispatched. |
Returns | |
---|---|
boolean |
True if the event was handled, false otherwise. |
CharSequence getAccessibilityClassName ()
返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName
。
Returns | |
---|---|
CharSequence |
ListAdapter getAdapter ()
返回此ListView中当前正在使用的适配器。 返回的适配器可能与传递给setAdapter(ListAdapter)
适配器setAdapter(ListAdapter)
但可能是WrapperListAdapter
。
Returns | |
---|---|
ListAdapter |
The adapter currently used to display data in this ListView. |
也可以看看:
long[] getCheckItemIds ()
此方法在API级别8中已被弃用。
改为使用getCheckedItemIds()
。
返回检查项目标识的集合。 结果仅在选择模式未设置为CHOICE_MODE_NONE
。
Returns | |
---|---|
long[] |
A new array which contains the id of each checked item in the list. |
Drawable getDivider ()
返回将在列表中的每个项目之间绘制的drawable。
相关XML属性:
Returns | |
---|---|
Drawable |
the current drawable drawn between list elements |
int getDividerHeight ()
Returns | |
---|---|
int |
Returns the height of the divider that will be drawn between each item in the list. |
int getFooterViewsCount ()
返回列表中页脚视图的数量。 页脚视图是列表底部的特殊视图,在布局过程中不应回收。
Returns | |
---|---|
int |
The number of footer views, 0 in the default implementation. |
int getHeaderViewsCount ()
返回列表中标题视图的数量。 标题视图是列表顶部的特殊视图,在布局过程中不应回收。
Returns | |
---|---|
int |
The number of header views, 0 in the default implementation. |
boolean getItemsCanFocus ()
Returns | |
---|---|
boolean |
Whether the views created by the ListAdapter can contain focusable items. |
int getMaxScrollAmount ()
Returns | |
---|---|
int |
The maximum amount a list view will scroll in response to an arrow event. |
Drawable getOverscrollFooter ()
Returns | |
---|---|
Drawable |
The drawable that will be drawn below all other list content |
Drawable getOverscrollHeader ()
Returns | |
---|---|
Drawable |
The drawable that will be drawn above all other list content |
boolean isOpaque ()
指示此视图是否不透明。 不透明视图保证它将使用完全不透明的颜色绘制所有像素重叠的边界。 视图的子类应尽可能覆盖此方法,以指示实例是否不透明。 不透明视图被视图层次以特殊方式处理,可能允许它在无效/绘制过程中执行优化。
Returns | |
---|---|
boolean |
True if this View is guaranteed to be fully opaque, false otherwise. |
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. |
boolean onKeyDown (int keyCode, KeyEvent event)
KeyEvent.Callback.onKeyDown()
默认实现:当 KEYCODE_DPAD_CENTER
或 KEYCODE_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. |
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. |
boolean onKeyUp (int keyCode, KeyEvent event)
的默认实现 KeyEvent.Callback.onKeyUp()
:当视图进行点击 KEYCODE_DPAD_CENTER
, KEYCODE_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. |
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 |
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 |
boolean requestChildRectangleOnScreen (View child, Rect rect, boolean immediate)
当该组的小孩想要将特定矩形定位到屏幕上时调用。 ViewGroup
重写这可以相信:
ViewGroup
s压倒一切应该维护合同:
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 |
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. |
也可以看看:
void setCacheColorHint (int color)
当设置为非零值时,缓存颜色提示表明此列表总是绘制在纯色,单色,不透明背景的顶部。 零意味着这个物体背后的是半透明的(非固体)或者不是由单一颜色构成的。 此提示不会影响此视图上设置的任何现有背景可绘制设置(通常通过setBackgroundDrawable(Drawable)
设置)。
Parameters | |
---|---|
color |
int : The background color |
void setDivider (Drawable divider)
设置将在列表中的每个项目之间绘制的drawable。
注意:如果drawable没有固有高度,则还应该调用 setDividerHeight(int)
。
相关XML属性:
Parameters | |
---|---|
divider |
Drawable : the drawable to use |
void setDividerHeight (int height)
设置将在列表中的每个项目之间绘制的分隔线的高度。 调用它将覆盖由setDivider(Drawable)
设置的固有高度
Parameters | |
---|---|
height |
int : The new height of the divider in pixels. |
void setFooterDividersEnabled (boolean footerDividersEnabled)
启用或禁用页脚视图的分隔线的绘制。
Parameters | |
---|---|
footerDividersEnabled |
boolean : True to draw the footers, false otherwise. |
void setHeaderDividersEnabled (boolean headerDividersEnabled)
启用或禁用标题视图的分隔线的绘制。
Parameters | |
---|---|
headerDividersEnabled |
boolean : True to draw the headers, false otherwise. |
void setItemsCanFocus (boolean itemsCanFocus)
指示由ListAdapter创建的视图可以包含可聚焦项目。
Parameters | |
---|---|
itemsCanFocus |
boolean : true if items can get focus, false otherwise |
void setOverscrollFooter (Drawable footer)
设置将绘制在所有其他列表内容下的drawable。 当用户超出列表的范围,或列表的内容未完全填充容器区域时,此区域可以显示。
Parameters | |
---|---|
footer |
Drawable : The drawable to use |
void setOverscrollHeader (Drawable header)
设置将绘制在所有其他列表内容之上的drawable。 当用户超出列表的范围时,该区域可以变得可见。
Parameters | |
---|---|
header |
Drawable : The drawable to use |
void setRemoteViewsAdapter (Intent intent)
设置此AbsListView以使用通过指定意图连接到RemoteViewsService的远程视图适配器。
Parameters | |
---|---|
intent |
Intent : the intent used to identify the RemoteViewsService for the adapter to connect to. |
void setSelection (int position)
设置当前选择的项目。 如果在触摸模式下,该项目不会被选中,但它仍然会被适当定位。 如果指定的选择位置小于0,则选择位置0处的项目。
Parameters | |
---|---|
position |
int : Index (starting at 0) of the data item to be selected. |
void setSelectionAfterHeaderView ()
setSelectionAfterHeaderView将选择设置为标题视图之后的第一个列表项。
void smoothScrollByOffset (int offset)
平滑地滚动到指定的适配器位置偏移量。 视图将滚动显示指定的位置。
Parameters | |
---|---|
offset |
int : The amount to offset from the adapter position to scroll to. |
void smoothScrollToPosition (int position)
平滑地滚动到指定的适配器位置。 视图将滚动显示指定的位置。
Parameters | |
---|---|
position |
int : Scroll to this adapter position. |
boolean canAnimate ()
指示视图组是否能够在第一个布局之后为其子项设置动画。
Returns | |
---|---|
boolean |
true if the children can be animated, false otherwise |
void dispatchDraw (Canvas canvas)
通过绘制来绘制子视图。 这可能会被派生类重写,以便在子对象被绘制之前获得控制权(但在绘制自己的视图之后)。
Parameters | |
---|---|
canvas |
Canvas : the canvas on which to draw the view |
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 |
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 |
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 |
void onFinishInflate ()
最终确定从XML扩展视图。 这被称为通货膨胀的最后一个阶段,毕竟所有的孩子的观点已被添加。
即使子类重写onFinishInflate,他们也应该始终确保调用super方法,以便调用。
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. |
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 . |
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. |