ListView的属性及⽅法详解
近期在重新学习Android控件知识,⽬前进⾏到ListView,感觉这是⼀块尤其难啃的硬⾻头:最为常⽤、⽤法较复杂、涉及的其他Android 知识也较多。因此决定系统地好好复习⼀遍ListView。其中涉及到的其他知识点将在后期以链接的形式不断进⾏更新。
本⽂仅介绍ListView相关的XML属性及⽅法,
关于ListView中需要注意的地⽅,请移步:.
⼀、ListView类的继承关系
java.lang.Object
↳android.view.View
↳android.view.ViewGroup
↳android.widget.AdapterView<T extends android.widget.Adapter>
↳android.widget.AbsListView
↳android.widget.ListView
什么是春梦可以看出,ListView并不直接继承于View,⽽是直接继承于抽象类.
ListView的直接⼦类有:ExpandableListView.
⼆、ListView概述
ListView是⼀个⽤来纵向显⽰条⽬的视图,这些条⽬内容来⾃于与该ListView相关联的ListAdapter.
三、嵌套类
class ListView.FixedViewInfo//⽤来在列表内展现⼀个固定位置视图,如在列表顶端的header和在列表底端的footer
四、XML属性
1.ListView的XML属性
android:divider//在列表条⽬之间显⽰的drawable或color
家用小型绞肉机
android:dividerHeight//⽤来指定divider的⾼度
android:entries//构成ListView的数组资源的引⽤。对于某些固定的资源,这个属性提供了⽐在程序中添加资源更加简便的⽅式
android:footerDividersEnabled//当设为fal时,ListView将不会在各个footer之间绘制divider.默认为true。
android:headerDividersEnabled//当设为fal时,ListView将不会在各个header之间绘制divider.默认为true。
2.继承⾃AbsListView的XML属性
android:cacheColorHint// 表明这个列表的背景始终以单⼀、固定的颜⾊绘制,可以优化绘制过程。
坚贞
android:choiceMode//为视图指定选择的⾏为。可选的类型有:none、singleChoice、multipleChoice、multipleChoiceModal。
android:drawSelectorOnTop// 若设为true,选择器将绘制在选中条⽬的上层。默认为fal。
android:fastScrollEnabled// 设置是否允许使⽤快速滚动滑块。
android:listSelector// 设置选中项显⽰的可绘制对象,可以是图⽚或者颜⾊属性。
android:scrollingCache// 设置在滚动时是否使⽤绘制缓存。若设为true,则将使滚动表现更快速,但会占⽤更内存。默认为true。
android:smoothScrollbar// 为真时,列表会使⽤更精确的基于条⽬在屏幕上的可见像素⾼度的计算⽅法。默认该属性为真,如果你的适配器需要绘制可变⾼的条⽬,他android:stackFromBottom// 设置GridView和ListView是否将内容从底部开始显⽰。
android:textFilterEnabled// 当设为真时,列表会将结果过滤为⽤户类型。前提是这个列表的Adapter必须⽀持Filterable接⼝。怎么追女孩子
android:transcriptMode//设置列表的transcriptMode.有如下选项可选:
中国皇后
//(1)disabled 禁⽤TranscriptMode,也是默认值;
//(2)normal 当新条⽬添加进列表中并且已经准备好显⽰的时候,列表会⾃动滑动到底部以显⽰最新条⽬;
//(3)alwaysScroll 列表会⾃动滑动到底部,⽆论新条⽬是否已经准备好显⽰.
3.继承⾃ViewGroup的XML属性
android:addStatesFromChildren// 设置这个ViewGroup的drawable状态是否包括⼦View的状态。若设为true,当⼦View如EditText或Button获得焦点时,整个ViewGro android:alwaysDrawnWithCache// 设置ViewGroup在绘制⼦View时是否⼀直使⽤绘图缓存。默认为true。
android:animationCache// 设置布局在绘制动画效果时是否为其⼦View创建绘图缓存。若设为true,将会消耗更多的内存,要求持续时间更久的初始化过程,但表现更android:clipChildren// 设置⼦View是否受限于在⾃⼰的边界内绘制。若设为fal,当⼦View所占⽤的空间⼤于边界时可以绘制在边界外。默认为true。
白玉菇焯水几分钟
android:clipToPadding//定义布局间是否有间距。默认为true。
android:descendantFocusability// 定义当寻找⼀个焦点View的时候,ViewGroup与其⼦View之间的关系。可选项为:
//(1)beforeDescendants ViewGroup会⽐其⼦View更先获得焦点;
//(2)afterDescendants 只有当⽆⼦View想要获取焦点时,ViewGroup才会获取焦点;
//(3)blockDescendants ViewGroup会阻⽌⼦View获取焦点
林觉民故居
android:layoutAnimation//定义当ViewGroup第⼀次展开时的动画效果,也可⼈为地在第⼀次展开后调⽤。
android:persistentDrawingCache// 定义绘图缓存的持久性。有如下可选项:
//(1)none 当使⽤过后不保留绘图缓存
//(2)animation 在layout animation之后保留绘图缓存
//(3)scrolling 在Scroll操作后保留绘图缓存
//(4)all always保留绘图缓存
4.继承⾃View的XML属性
太多了………………饶过我吧
五、常⽤public⽅法
1.add/remove ⽅法
void addFooterView(View v)//增加⼀个固定在列表底部的View,参数 v为欲添加的视图
void addFooterView(View v,Object data,boolean isSelectable)//增加⼀个固定在列表底部的View,参数 v为欲添加的视图,data为与View绑定的数据,isSelectable设置void addHeaderView(View v)//增加⼀个固定在列表顶部的View,参数 v为欲添加的视图
void addHeaderView(View v,Object data,boolean isSelectable)//增加⼀个固定在列表顶部的View,参数 v为欲添加的视图,data为与View绑定的数据,isSelectable设置boolean removeFooterView(View v)//去除⼀个之前添加的FooterView,参数v为欲删除的视图,若成功删除则返回true
boolean removeHeaderView(View v)//去除⼀个之前添加的HeaderView,参数v为欲删除的视图,若成功删除则返回true
2.响应事件⽅法
boolean OnKeyDown(int keyCode,KeyEvent event)//当按下键时响应
boolean OnKeyMultiple(int keyCode,int repeatCount,KeyEvent event)//重复按下键时响应,repeatCount为按下次数
boolean OnKeyUp(int keyCode,KeyEvent event)//当键被释放时响应
<⽅法
ListAdapter getAdapter()//返回ListView正在使⽤的Adapter
Drawable getDivider()//以Drawable形式返回divider
int getDividerHeight()//这个……真不想解释了
int getFooterViewCount()//返回FooterView的个数,若⽆返回0
int getHeaderViewCount()//返回HeaderView的个数,若⽆返回0买太阳镜
boolean getItemsCanFocus()//返回是否有可获得焦点的条⽬
int getMaxScrollAmount()//The maximum amount a list view will scroll in respon to an arrow event.(求翻译)
Drawable getOverscrollFooter()//返回绘制在所有条⽬之下的drawable
Drawable getOverscrollHeader()//返回绘制在所有条⽬之上的drawable
4.t⽅法
void tAdapter(ListAdapter adapter)//为ListView绑定Adapter
void tCacheColorHint(int color)//参数为0时,将CacheColor设为透明;参数⾮零时,指定⼀种颜⾊作为ListView的背景
void tDivider(Drawable divider)//为ListView中每个条⽬之间设定⼀个Divider
void tDividerHeight(int height)//设定Divider的⾼度,单位为pixel
void tFooterDividerEnabled(boolean footDividerEnabled)//设置FooterView之间的Dividers是否可⽤
void tHeaderDividerEnabled(boolean headDividerEnabled)//设置HeaderView之间的Dividers是否可⽤
void tItemsCanFocus(boolean itemsCanFocus)//设置是否包含可获取焦点的Item
void tOverscrollFooter(Drawable footer)//设置⼀个当滚动时或ListView未填满屏幕时能显⽰在ListView下⽅的Drawable
void tOverscrollHeader(Drawable header)//设置⼀个当滚动时能显⽰在ListView上⽅的Drawable
void tRemoteViewAdapter(Intent intent)//为此AbsListView设置⼀个通过intent连接到RemoteViews
Service⽽提供的远程视图适配器void tSelection(int position)//设置被选中的条⽬。如果参数⼩于0,则position为0的条⽬将被选中
void tSelectionAfterHeaderView()//选中headerView下⽅的第⼀条条⽬