ListView是显示垂直可滚动的列表项视图,列表项的来源可以使用一个适配Adapter,Adapter可将内容从源(如数组或数据库)转换成视图放在列表中。
ListView类的继承关系
java.lang.Object
->android.view.View
->android.view.ViewGroup
->android.widget.AdapterView<android.widget.ListAdapter>
->android.widget.AbsListView
->android.widget.ListViewc
已知的直接子
ExpandableListView // 是一个加强版ListView,它可显示垂直滚动的两级列表
嵌套类
class ListView.FixedViewInfo // 列表的顶header和底footer展现一个固定位置视图
XML属性
属性 | 说明 |
android:divider | 在列表条目之间显示的drawable或color |
android:dividerHeight | 用来指定divider的高度 |
android:entries | 构成ListView的数组资源的引用。对于某些固定的资源,这个属性提供了比在程序中添加资源更加简便的方式 |
android:footerDividersEnabled | 当设为false时,ListView将不会在各个footer之间绘制divider,默认为true |
android:headerDividersEnabled | 当设为false时,ListView将不会在各个header之间绘制divider,默认为true |
继承了AbsListView 的XML属性
属性 | 说明 |
android:cacheColorHint | 表明这个列表的背景始终以单一、固定的颜色绘制,可以优化绘制过程 |
android:choiceMode | 为视图指定选择的行为。可选的类型有:none、singleChoice、multipleChoice、multipleChoiceModal |
android:drawSelectorOnTop | 若设为rue,选择器将绘制在选中条目的上层,默认为false |
android:fastScrollEnabled | 设置是否允许使用快速滚动滑块 |
android:listSelector | 设置选中项显示的可绘制对象,可以是图片或者颜色属性 |
android:scrollingCache | 设置在滚动时是否使用绘制缓存。若设为true,则将使滚动表现更快速,但会占用更内存,默认为true |
android:smoothScrollbar | 列表会使用更精确的基于条目在屏幕上的可见像素高度的计算方法,默认该属性为true。如果你的适配器需要绘制可变高的条目,他应该设为false。当该属性为true时,你在适配器在显示变高条目时,滚动条的把手会在滚动的过程中改变大小。当设为false时,列表只使用适配器中的条目数和屏幕上的可见条目来决定滚动条的属性 |
android:stackFromBottom | 设置GridView和ListView是否将内容从底部开始显示 |
android:textFilterEnabled | 当设为true时,列表会将结果过滤为用户类型。前提是这个列表的Adapter必须支持Filterable接口 |
ndroid:transcriptMode | 设置列表的记录模式,值有如下选项可选: disabled 禁用TranscriptMode,也是默认值 normal 当新条目添加进列表中并且已经准备好显示的时候,列表会自动滑动到底部以显示最新条目 alwaysScroll 列表会自动滑动到底部,无论新条目是否已经准备好显示 |
继承了ViewGroup和View的XML属性
可查看 Android控件 - View 简介和Android控件 - ViewGroup、ViewGroup.LayoutParams、ViewGroup.MarginLayoutParams简介
公共方法
方法 | 说明 | |
| 增加一个固定在列表底部的View,参数 v为欲添加的视图,data为与View绑定的数据,isSelectable设置是否可选 | |
| 增加一个固定在列表顶部的View,参数 v为欲添加的视图,data为与View绑定的数据,isSelectable设置是否可选 | |
| 是否启动各个footer之间绘制divider | |
| 是否启动各个header之间绘制divider | |
返回这个对象的类名 | ||
返回ListView正在使用的Adapter | ||
| 返回选中的项id | |
以Drawable形式返回divider | ||
| 返回divider的高度 | |
| 返回FooterView的个数,若无返回0 | |
| 返回HeaderView的个数,若无返回0 | |
| 返回是否有可获得焦点的条目 | |
| 返回当前滚动视图响应箭头事件能够滚动的最大数 | |
返回绘制在所有条目之下的drawable | ||
返回绘制在所有条目之上的drawable | ||
| 是否不透明 | |
当按下键时响应 | ||
| 重复按下键时响应,repeatCount为按下次数 | |
当键被释放时响应 | ||
| 去除一个之前添加的FooterView,参数v为欲删除的视图,若成功删除则返回true | |
| 去除一个之前添加的HeaderView,参数v为欲删除的视图,若成功删除则返回true | |
| 当组里的某个子视图需要被定位在屏幕的某个矩形范围时,调用此方法。immediate 设为true,则禁止动画和平滑移动滚动条 | |
| 为ListView绑定Adapter | |
| 参数为0时,将CacheColor设为透明;参数非零时,指定一种颜色作为ListView的背景 | |
| 为ListView中每个条目之间设定一个Divider | |
| 设定Divider的高度,单位为pixel | |
| 设置FooterView之间的Dividers是否可用 | |
| 设置HeaderView之间的Dividers是否可用 | |
| 设置是否包含可获取焦点的Itemc | |
| 设置一个当滚动时或ListView未填满屏幕时能显示在ListView下方的Drawable | |
| 设置一个当滚动时能显示在ListView上方的Drawable | |
| 为此AbsListView设置一个通过intent连接到RemoteViewsService而提供的远程视图适配器 | |
| 设置被选中的条目。如果参数小于0,则position为0的条目将被选中 | |
| 选中headerView下方的第一条条目 | |
| 平滑滚动到指定的适配器位置偏移量 | |
| 平滑滚动到指定的适配器位置 |