之前我们学习的一些UI组件都比较简单,但是在实际开发中,会经常遇见列表界面设计,如通讯录、电话列表、信息列表等。那么从本节开始来详细学习列表界面设计。
一、了解ListView
在Android开发中,ListView是比较常用的控件,它以列表的形式显示具体内容,并且能够根据数据的长度自适应显示。在学习ListView之前,先来一起了解AdapterView。
AdapterView是一组重要的组件,AdapterView本身是一个抽象基类,它派生的子类在用法上十分相似,只是显示界面有一定的区别,因此把它们归为一类,针对它们的共性集中讲解,并突出介绍它们的区别。AdapterView主要具有以下几个特征。
-
AdapterView继承了 ViewGroup,它的本质是容器。
-
AdapterView可以包括多个“列表项”,并将多个“列表项”以合适的形式显示出来。
-
AdapterView显示的多个“列表项”由Adapter提供。调用AdapterView的 setAdapter(Adapter)方法设置 Adapter 即可。
AdapterView及其子类的关系如下图所示。
从上图可以看出,AdapterView派生了三个子类:AbsListView、AbsSpinner 和 AdapterView Animator,这三个子类依然是抽象的,实际使用时往往采用它们的子类。其中AbsListView提供的常用XML属性及相关方法如下表所示。
先从比较简单的子类ListView的使用方法开始学习,使用ListView主要有以下两种方式。
-
直接使用ListView进行创建。
-
让 Activity 继承 ListActivity (相当于该 Activity 显示的组件为 ListView,后续再进行学习)。
一旦在程序中获得了 ListView之后,接下来就需要为ListView设置它要显示的列表项了。 在这一点上,ListView显示出AdapterView的特征:通过setAdapter(Adapter)方法为之提供 Adapter,并由Adapter提供列表项即可,关于Adapter的使用会在后续进行学习,欢迎关注分享达人秀(ShareExpert)获取最新教程,也欢迎加入Android入门技术讨论微信群,可先添加好友(jinwenyu2010)备注Android群,然后拽进群。
ListView提供的常用XML属性如下所示:
-
android:divider:设置 List 列表项的分隔条(即可用颜色分隔,也可用 Drawable 分隔)。
-
android:dividerHeight:设置分隔条的高度。
-
android:entries:指定一个数组资源,Android 将根据该数组资源来生成 ListView。
-
android:footerDividerEnabled:如果设置为 false,则不在 footer View 之前绘制分隔条。
-
android:footerDividerEnabled:如果设置为 false,则不在 header View 之后绘制分隔条。