API 25 (Android 7.1.1 API) widget.ListView

Android API 25 (Android 7.1.1 API)


ListView

public class ListView

extends AbsListView

Added in API level 1

 

java.lang.Object

   ↳android.view.View

    ↳android.view.ViewGroup

     ↳android.widget.AdapterView<android.widget.ListAdapter>

      ↳android.widget.AbsListView

       ↳android.widget.ListView

 

已知直接子类:

ExpandableListView

 

【概述】

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

 

请参阅ListView指南。

 

【嵌套类】

ListView.FixedViewInfo

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

 

【XML属性】

android:  divider

API 1

关联方法:setDivider(Drawable divider)

属性说明:设置List项目之间用某个图形或颜色来做为分隔符。

可以引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name

可以是颜色值(color),格式#rgb”、”#argb”、”#rrggbb”、”#aarrggbb”。

对应的全局属性资源符号是divider

 


android:  dividerHeight

API 1

关联方法:setDividerHeight(int height)

属性说明:设置分隔符的高度。

必须是带单位的浮点型尺寸值float,如:14.5sp”。有效的单位包括:px(像素)dp(密度无关像素)sp(通常用于字体尺寸的可伸缩像素)in(英寸)mm(毫米)

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是dividerHeight

 


android:  entries

API 1

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

必须引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name

对应的全局属性资源符号是entries

 


android:  footerDividersEnabled

API 1

关联方法:setFooterDividersEnabled (boolean footerDividersEnabled)

属性说明:页脚前是否画分隔符。

当设置为false时,此ListView将不会在页脚视图之前绘制分隔符。默认为true

必须是布尔值(boolean),true”或“false”。

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是footerDividersEnabled

 


android:  headerDividersEnabled

API 1

关联方法:setHeaderDividersEnabled (boolean headerDividersEnabled)

属性说明:页眉后是否画分隔符。

当设置为false时,此ListView将不会在页眉视图之后绘制分隔符。默认为true

必须是布尔值(boolean),true”或“false”。

也可以引用一个包含此类型值的资源格式:@[package:]type:name或主题属性(格式:?[package][type:]name)。

对应的全局属性资源符号是headererDividersEnabled

 


【继承自widget.AbsListView的XML属性】

跳转widget.AbsListView

 

【继承自view.ViewGroup的XML属性】

跳转view.ViewGroup

 

【继承自view.View的XML的属性】

跳转view.View

 

【公共构造函数】

ListView(Context context)

ListView(Context context, AttributeSet attrs)

ListView(Context context, AttributeSet attrs, int defStyleAttr)

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

 

【公共方法】

addFooterView

void addFooterView (View v)

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

添加固定视图以显示在列表的底部。如果addFooterView被多次调用,则视图将按照添加的顺序显示。加入的视图可取得焦点。

注意:第一次引入时,只能在setAdapterListAdapter)之前调用此方法。Android 4.4以后,可以随时调用此方法。 如果ListView的适配器没有扩展HeaderViewListAdapter,它将被WrapperListAdapter的支持实例包装。

可以利用点击光标来收起有header viewfooter viewListView

addHeaderView

void addHeaderView (View v)

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

添加固定视图以显示在列表的顶部。如果addHeaderView被多次调用,则视图将按照添加的顺序显示。加入的视图可取得焦点。

注意:第一次引入时,只能在setAdapterListAdapter)之前调用此方法。Android 4.4以后,可以随时调用此方法。 如果ListView的适配器没有扩展HeaderViewListAdapter,它将被WrapperListAdapter的支持实例包装。

可以利用点击光标来收起有header viewfooter viewListView

 

 

areFooterDividersEnabled

boolean areFooterDividersEnabled ()

API 19

是否启用页脚视图的分隔线绘图。

areHeaderDividersEnabled

boolean areHeaderDividersEnabled ()

API 19

是否启用页眉视图的分隔线绘图。

 

setFooterDividersEnabled

void setFooterDividersEnabled (boolean footerDividersEnabled)

API 3

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

setHeaderDividersEnabled

void setHeaderDividersEnabled (boolean headerDividersEnabled)

API 3

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

 

 

dispatchKeyEvent

boolean dispatchKeyEvent (KeyEvent event)

API 1

按照可以获得焦点的顺序(从视图树的顶端到当前获得焦点的视图),分派一个按键事件给下一个视图。若此视图有焦点,事件将会分派给它自己。否则它将按照顺序,分派给下一个节点。此方法同时触动所有按键监听器。

 

 

getAccessibilityClassName

CharSequence getAccessibilityClassName ()

API 23

返回此对象的类名以用于辅助功能。子类只能覆盖这个,如果他们实现的东西,应该被视为一个完全新的类的视图使用时的可访问性,与其派生的类无关。这用于填充AccessibilityNodeInfo.setClassName

 

 

setAdapter

void setAdapter (ListAdapter adapter)

API 1

设置ListView后面的数据。 传递给此方法的适配器可能由WrapperListAdapter包装,具体取决于当前使用的ListView功能。

getAdapter

ListAdapter getAdapter ()

API 1

返回ListView当前使用的适配器。 返回的适配器可能不是传递给setAdapterListAdapter)的同一适配器,但可能是WrapperListAdapter

 

getCheckItemIds

long[] getCheckItemIds ()

Added in API level 4,deprecated in API level 8.  使用getCheckedItemIds()替代。

返回所选项目标识的集合。仅当选择模式未设置为CHOICE_MODE_NONE时,结果才有效。

 

setDivider

void setDivider (Drawable divider)

API 1

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

注意:如果drawable没有固有的高度,你也应该调用setDividerHeightint)。

getDivider

Drawable getDivider ()

API 1

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

 

setDividerHeight

void setDividerHeight (int height)

API 1

设置分隔符drawable的高度。将覆盖由setDividerDrawable)设置的内在高度,

getDividerHeight

int getDividerHeight ()

API 1

返回分隔符drawable的高度。

 

 

getFooterViewsCount

int getFooterViewsCount ()

API 1

返回列表中页脚视图的数量。页脚视图是列表底部的特殊视图,不应在布局期间回收。默认为0

getHeaderViewsCount

int getHeaderViewsCount ()

API 1

返回列表中页眉视图的数量。页脚视图是列表底部的特殊视图,不应在布局期间回收。默认为0

 

setItemsCanFocus

void setItemsCanFocus (boolean itemsCanFocus)

API 1

设置ListView的子项是否可以获取焦点。

getItemsCanFocus

boolean getItemsCanFocus ()

API 1

返回ListView的子项是否可以获取焦点。

 

 

getMaxScrollAmount

int getMaxScrollAmount ()

API 1

返回列表视图将响应箭头事件而滚动的最大值。即一次滑动事件滑动的view的最大数量。

 

 

setOverscrollFooter

void setOverscrollFooter (Drawable footer)

API 9

设置页脚视图。当用户过度滚动列表时,或者当列表的内容未完全填充容器区域时,此区域可以变为可见。

setOverscrollHeader

void setOverscrollHeader (Drawable header)

API 9

设置页眉视图。当用户过度滚动列表时,或者当列表的内容未完全填充容器区域时,此区域可以变为可见。

 

 

getOverscrollFooter

Drawable getOverscrollFooter ()

API 9

获取页脚视图。

getOverscrollHeader

Drawable getOverscrollHeader ()

API 9

获取页眉视图。

 

 

removeFooterView

boolean removeFooterView (View v)

API 1

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

removeHeaderView

boolean removeHeaderView (View v)

API 1

删除先前添加的页眉视图。

 

isOpaque

boolean isOpaque ()

API 7

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

 

 

onInitializeAccessibilityNodeInfoForItem

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

API 19

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

 

onKeyDown

boolean onKeyDown (int keyCode, KeyEvent event)

API 1

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

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

onKeyMultiple

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

API 1

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

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

onKeyUp

boolean onKeyUp (int keyCode, KeyEvent event)

API 1

KeyEvent.Callback.onKeyUp()的默认实现:当KEYCODE_DPAD_CENTERKEYCODE_ENTERKEYCODE_SPACE被释放时,执行视图的点击

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

 

 

requestChildRectangleOnScreen

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

API 1

当此组的子元素想要将特定矩形定位到屏幕上时调用。

 

         重载此方法的ViewGroup需要确保

                   · view将是组里的直系子视图

                   · 矩形将在子view的坐标体系中

         重载此方法的ViewGroup需要保持

                   · 矩形区域不会改变

                   · 为使矩形区域全部可见,视图将可以被滚动显示

 

 

setCacheColorHint

void setCacheColorHint (int color)

API 1

设置一个纯色的默认背景。不会影响这个view已经存在的背景(通常通过setBackgroundDrawableDrawable)设置)。

 

 

setRemoteViewsAdapter

void setRemoteViewsAdapter (Intent intent)

API 11

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

 

 

setSelection

void setSelection (int position)

API 1

选中position指定的项目。若为触摸模式,则指定项目不会被选中,但位置变化一样。若position的值小于0,则position0的项目将被选中。

 

 

setSelectionAfterHeaderView

void setSelectionAfterHeaderView ()

API 1

选中页眉视图下的第一个列表项目。

 

smoothScrollByOffset

void smoothScrollByOffset (int offset)

API 11

平滑滚动到适配器的指定相对位置。视图会滚动,以使指定位置的视图显示出来。

smoothScrollToPosition

void smoothScrollToPosition (int position)

API 8

平滑滚动到适配器的指定位置。视图会滚动,以使指定位置的视图显示出来。

 

【受保护的方法】

canAnimate

boolean canAnimate ()

API 1

表示此视图组是否可以在首次布局后为其子视图提供动画效果的显示。

 

dispatchDraw

void dispatchDraw (Canvas canvas)

API 1

用来控制子视图的绘制。派生类覆盖此方法以在listview自己完成绘制后去控制子项的绘制。。

 

drawChild

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

API 1

绘制该视图组的一个子视图.该方法负责取得处于正确状态的画布.它包含剪切、转换子视图的滚动坐标为(0,0),并应用切换动画。

 

 

findViewTraversal

View findViewTraversal (int id)

API 1

查找子视图中ID对应的视图,没找到返回空。

findViewWithTagTraversal

View findViewWithTagTraversal (Object tag)

API 1

查找子视图中Tag对应的视图,没找到返回空。

 

layoutChildren

void layoutChildren ()

API 1

子类必须重写此方法以布局其子视图。

 

 

onDetachedFromWindow

void onDetachedFromWindow ()

API 1

当视图从窗口分离时调用。在这一点上,它不再具有用于绘图的表面。

 

 

onFinishInflate

void onFinishInflate ()

API 1

根据 XML生成视图工作完成.该函数在生成视图的最后调用,在所有子视图添加完之后。

即使子类覆盖了onFinishInflate方法,也应该调用父类的方法,使该方法得以执行。

 

 

onFocusChanged

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

API 1

View的焦点改变时被调用。重写时,要确保超类的直接调用,这样取得焦点的方式才是标准的。

当焦点改变事件由定向导航引起时,方向和previousFocusedRect提供对焦点来自何处的进一步信息。

 

 

onMeasure

void onMeasure (int widthMeasureSpec, int heightMeasureSpec)

API 1

View调用此方法来确定本身和所包含内容的大小。此方法被measure(int,int)唤起,而且必须被子类重写以得到所包含内容的确切大小。

注意:当重写此方法时,必须调用setMeasureDimension(int,int)来保存View的大小。如果没有做到,将会引发一个measure(int,int)抛出的IllegalStateException(非法状态错误)。超类onMeasure(int,int)可以被调用。

编写基类的确认大小的方法,缺省情况下是根据其背景大小来确认,除非MeasureSepc允许有更大的高度或宽度。子类必须重写onMeasure(int,int)以得到对其内容大小的更准确的测量。

若此方法被重写,它的子类需要确保其高度和宽度至少达到View所规定的最小值(可通过getSuggestedMinimumHeight()getSuggestedMinimumWidth()得到)。

 

 

onSizeChanged

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

API 1

该方法在布局期间,当视图的大小变更时调用.如果只是将视图加入视图树,变更前的值为0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值