`
hulianwang2014
  • 浏览: 692517 次
文章分类
社区版块
存档分类
最新评论
  • bcworld: 排版成这样,一点看的欲望都没有了
    jfinal

ListView的属性及方法详解

 
阅读更多

近期在重新学习Android控件知识,目前进行到ListView,感觉这是一块尤其难啃的硬骨头:最为常用、用法较复杂、涉及的其他Android知识也较多。因此决定系统地好好复习一遍ListView。其中涉及到的其他知识点将在后期以链接的形式不断进行更新。


本文仅介绍ListView相关的XML属性及方法,

关于ListView在App中的用法Android ListView 常见用法

关于ListView中需要注意的地方,请移步ListView中几个需要注意的属性.

一、ListView类的继承关系

java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.AdapterView<Textendsandroid.widget.Adapter>
android.widget.AbsListView
android.widget.ListView


可以看出,ListView并不直接继承于View,而是直接继承于抽象类AbsListView.

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//当设为false时,ListView将不会在各个footer之间绘制divider.默认为true。

android:headerDividersEnabled//当设为false时,ListView将不会在各个header之间绘制divider.默认为true。


2.继承自AbsListView的XML属性

android:cacheColorHint// 表明这个列表的背景始终以单一、固定的颜色绘制,可以优化绘制过程。

android:choiceMode//为视图指定选择的行为。可选的类型有:none、singleChoice、multipleChoice、multipleChoiceModal。

android:drawSelectorOnTop// 若设为true,选择器将绘制在选中条目的上层。默认为false。

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获得焦点时,整个ViewGroup也会获得焦点。

android:alwaysDrawnWithCache// 设置ViewGroup在绘制子View时是否一直使用绘图缓存。默认为true。

android:animationCache// 设置布局在绘制动画效果时是否为其子View创建绘图缓存。若设为true,将会消耗更多的内存,要求持续时间更久的初始化过程,但表现更好。默认为true。

android:clipChildren// 设置子View是否受限于在自己的边界内绘制。若设为false,当子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)//当键被释放时响应


3.get方法

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 response to an arrow event.(求翻译)

Drawable getOverscrollFooter()//返回绘制在所有条目之下的drawable

Drawable getOverscrollHeader()//返回绘制在所有条目之上的drawable



4.set方法

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 setFooterDividerEnabled(boolean footDividerEnabled)//设置FooterView之间的Dividers是否可用

void setHeaderDividerEnabled(boolean headDividerEnabled)//设置HeaderView之间的Dividers是否可用

void setItemsCanFocus(boolean itemsCanFocus)//设置是否包含可获取焦点的Item

void setOverscrollFooter(Drawable footer)//设置一个当滚动时或ListView未填满屏幕时能显示在ListView下方的Drawable

void setOverscrollHeader(Drawable header)//设置一个当滚动时能显示在ListView上方的Drawable

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

void setSelection(int position)//设置被选中的条目。如果参数小于0,则position为0的条目将被选中

void setSelectionAfterHeaderView()//选中headerView下方的第一条条目



分享到:
评论

相关推荐

    Delphi控件ListView的属性及使用方法详解

    主要介绍了Delphi控件ListView的属性及使用方法详解,对于Delphi控件ListView做一复习总结,需要的朋友可以参考下

    android ListView 一些重要属性详解

    android ListView 一些重要属性详解,需要的朋友可以参考一下

    C# ListView用法详解

    1、常用的基本属性: (1)FullRowSelect:设置是否行选择模式。(默认为false) 提示:只有在Details视图该属性才有意义。 (2) GridLines:设置行和列之间是否显示网格线。(默认为false)提示:只有在Details...

    Android ListView 滚动条的设置详解及实例代码

    Android ListView 滚动条的设置详解 1.滚动条的属性 android:scrollbarAlwaysDrawHorizontalTrack 设置是否始终显示水平滚动条。这里用ScrollView、ListView测试均没有效果。 android:...

    Android ListView详解

    ListView 控件可使用四种不同视图显示项目...另外,还可管理列表中项目的排序方法和选定项目的外观。 由于google doc 很多人都打不开,故更新了源码下载地址 【源码下载】—-2011-01-18  在android开发中ListView是比

    EditText属性详解

    EditText常用属性详解,串联通用功能。包含有修改确认,EditText的背景selector,shape的使用,ListView的技巧属性

    Android ListView中动态添加RaidoButton的实例详解

    Android ListView中动态添加RaidoButton的实例详解 这里讲解的内容是:从数据库中取得数据,将这些数据的value值赋值给Radiobutton的text属性,将这些数据的key值赋值给radiobutton的key值。同时实现点击一整行,...

    Animation动画详解 - v1.0

    • 1、《Animation 动画详解(一)——alpha、scale、translate、rotate、set的xml属性及用法》 • 2、《Animation动画详解(二)——Interpolator插值器》 • 3、《Animation动画详解(三)—— 代码生成alpha、...

    《Android自定义组件开发详解》

    3.2 invalidate()方法 65 3.3 坐标转换 69 3.4 剪切区(Clip) 73 3.5 案例:指针走动的手表 82 3.6 练习作业 88 第四章 双缓存技术 89 4.1 双缓存 89 4.2 在屏幕上绘制曲线 90 4.3 在屏幕上绘制矩形 99 4.4 案例:...

    Android CardView详解及使用方法和实例

    Android CardView详解 Android5.0中向我们介绍了一个全新的控件–CardView,从本质上看,可以将CardView看做是FrameLayout在自身之上添加了圆角和阴影效果。请注意:CardView被包装为一种布局,并且经常在ListView...

    Android下拉刷新以及GridView使用方法详解

    GridView是类似于ListView的控件,只是GridView可以使用多个列来呈现内容,而ListView是以行为单位,所以用法上是差不多的。 主布局文件,因为要做下拉刷新,所以加了一个ProgressBar,GridView的numColumns属性是指...

    Petshop5.0详解文档+Petshop5.0源代码

    基于.NET Framework 3.5的Petshop,使用LINQ to SQL改进数据访问层,使用WCF来提供RSS,并在UI层上做一些改进,如使用ASP.NET AJAX,ListView控件等。 PetShop for .NET3.5 Weekly Drop 01 Release name is ...

    实例详解android studio如何导入.so文件的方法

    下面是通过自己写的一个demo,绝对不是官方demo,来给大家讲述了如何在android studio如何导入.so文件的流程和方法,欢迎大家在下方留言讨论指正。 1,android studio如何加载极光推送的jar包和.so库文件. 2,如何获取...

    Android自定义指示器时间轴效果实例代码详解

    指示器时间轴在外卖、购物类的APP里会经常用到,效果大概就像下面这样,看了网上很多文章,大都是自己绘制,太麻烦,其实通过ListView就可以实现。 在Activity关联的布局文件activity_main.xml中放置一个ListView,...

    VB 各种控件(个人收藏30多种,还有详细的使用介绍)

    一、VB控件集,控件集内含ListView、漂亮按钮、下拉列表、TAB窗体选项卡、树形菜单控件、窗体滑动菜单、分组菜单,可折叠展开的菜单等。以前就更新过,现在修正了不少控件中的小错误,更接近完善了,相信这些控件...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--动画Animation详解 |--动画之view左右抖动 |--动画之移动动画 |--动画之组合动画 |--动画之缩放动画ScaleAnimation |--反序列化对象 |--发送短信 读天气 调音量 |--回调函数的定义 |--图片之BitMap、Drawable、...

    ASP.NET 数据绑定详解 代码+步骤

    属性绑定2.2. 表达式绑定2.3. 集合绑定2.4. 方法绑定3. 数据控件绑定3.1. ListControl 控件3.2. GridView 控件3.2.2. 使用GridView控件绑定数据源3.2.3. 自定义GridView控件的列字段名3.2.4. 使用GridView控件分页...

    浅析Android手机卫士保存手机安全号码

    推荐阅读: 浅析Android手机卫士sim卡绑定 ...详解Android 手机卫士设置...使用匿名内部类实现,重写onClick()方法,传递进来的参数:ListView,当前View,position,id 根据索引位置把当前这条电话号码传回去 调用List对

Global site tag (gtag.js) - Google Analytics