Android控件 - ListView 简介

ListView是显示垂直可滚动的列表项视图,列表项的来源可以使用一个适配Adapter,Adapter可将内容从源(如数组或数据库)转换成视图放在列表中。

ListView类的继承关系

java.lang.Object

   ->android.view.View

           ->android.view.ViewGroup

                   ->android.widget.AdapterView

                           ->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简介

公共方法

方法

说明

void addFooterView(View v)

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

增加一个固定在列表底部的View,参数 v为欲添加的视图,data为与View绑定的数据,isSelectable设置是否可选

void addHeaderView(View v)

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

增加一个固定在列表顶部的View,参数 v为欲添加的视图,data为与View绑定的数据,isSelectable设置是否可选

boolean areFooterDividersEnabled()

是否启动各个footer之间绘制divider

boolean areHeaderDividersEnabled()

是否启动各个header之间绘制divider

charSequence getAccessibilityClassName()

返回这个对象的类名

ListAdapter getAdapter()

返回ListView正在使用的Adapter

long[] getCheckItemIds()

返回选中的项id

Drawable getDivider()

以Drawable形式返回divider

int getDividerHeight()

返回divider的高度

int getFooterViewsCount()

返回FooterView的个数,若无返回0

int getHeaderViewsCount()

返回HeaderView的个数,若无返回0

boolean getItemsCanFocus()

返回是否有可获得焦点的条目

int getMaxScrollAmount()

返回当前滚动视图响应箭头事件能够滚动的最大数

Drawable getOverscrollFooter()

返回绘制在所有条目之下的drawable

Drawable getOverscrollHeader

返回绘制在所有条目之上的drawable

boolean isOpaque()

是否不透明

boolean onKeyDown(int keyCode, KeyEvent event)

当按下键时响应

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

重复按下键时响应,repeatCount为按下次数

boolean onKeyUp(int keyCode, KeyEvent event)

当键被释放时响应

boolean removeFooterView(View v)

去除一个之前添加的FooterView,参数v为欲删除的视图,若成功删除则返回true

boolean removeHeaderView(View v)

去除一个之前添加的HeaderView,参数v为欲删除的视图,若成功删除则返回true

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

当组里的某个子视图需要被定位在屏幕的某个矩形范围时,调用此方法。immediate 设为true,则禁止动画和平滑移动滚动条

void setAdapter(ListAdapter adapter)

为ListView绑定Adapter

void setCacheColorHint(int color)

参数为0时,将CacheColor设为透明;参数非零时,指定一种颜色作为ListView的背景

void setDivider(Drawable divider)

为ListView中每个条目之间设定一个Divider

void setDividerHeight(int height)

设定Divider的高度,单位为pixel

void setFooterDividersEnabled(boolean footerDividersEnabled)

设置FooterView之间的Dividers是否可用

void setHeaderDividersEnabled(boolean headerDividersEnabled)

设置HeaderView之间的Dividers是否可用

void setItemsCanFocus(boolean itemsCanFocus)

设置是否包含可获取焦点的Itemc

void setOverscrollFooter(Drawable footer)

设置一个当滚动时或ListView未填满屏幕时能显示在ListView下方的Drawable

void setOverscrollHeader(Drawable header)

设置一个当滚动时能显示在ListView上方的Drawable

void setRemoteViewsAdapter(Intent intent)

为此AbsListView设置一个通过intent连接到RemoteViewsService而提供的远程视图适配器

void setSelection(int position)

设置被选中的条目。如果参数小于0,则position为0的条目将被选中

void setSelectionAfterHeaderView()

选中headerView下方的第一条条目

void smoothScrollByOffset(int offset)

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

void smoothScrollToPosition(int position)

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

 

你可能感兴趣的:(Android入门与基础)