Android学习笔记(23):列表项的容器—AdapterView的子类们
AdapterView的子类的子类ListView、GridView、Spinner、Gallery、AdapterViewFlipper和StackView都是作为容器使用,Adapter负责提供各个列表项的内容。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
1.列表视图ListView和ListActivity:
以垂直列表的形式显示列表项。
生成列表视图有例如以下两种方法:
(1).直接使用ListView
(2).让Activity继承ListActivity
ListView支持的XML属性和相关方法:
|
Attribute Name |
Related Method |
Description |
|
设置List列表项的分隔条(颜色或Drawable) |
||
|
设置分隔条的高度 |
||
|
指定一个数组资源,用于填充列表的内容 |
||
|
设置为false。不在footer View前绘制分隔条 |
||
|
设置为false,不在header View后绘制分隔条 |
2.可展开的列表视图ExpandableListView
ExpandableListView是ListView的子类,它把列表项分为几组,每组里包括多个列表项。
与其它列表视图不同的是:ExpandableListView的列表项应该由ExpandableListAdapter提供。
与Adapter类似:ExpandableListAdapter也有三种经常使用方式:
(1).扩展BaseExpandableListAdapter实现ExpandableListAdapter。
(2).使用SimpleExpandableListAdapter将两个List集合包装成ExpandableListAdapter。
(3).使用SimpleCursorTreeAdapter将Cursor中的数据包装成SimpleCursorTreeAdapter。
ExpandableListView支持的XML属性:
|
Attribute Name |
Related Method |
Description |
|
android:childDivider |
指定各组内子列表项之间的分隔条 |
|
|
android:childIndicator |
显示在子列表项旁边的Drawable对象 |
|
|
android:groupIndicator |
显示在组列表项旁边的Drawable对象 |
扩展BaseExpandableListAdapter实现ExpandableListAdapter的时候须要实现的4个方法:
getGroupCount():返回包括组列表项的数量
getGroupView():返回的View对象将作为组列表项
getChildrenCount():返回特定组包括的子列表项的数量
getChildView():返回的View对象将作为特定组、特定位置的子列表项
3.网格视图GridView:
按行、列分布的方式显示多个组件。
GridView支持的XML属性和相关方法:
|
Attribute Name |
Related Method |
Description |
|
设置列的宽度 |
||
|
设置对齐方式 |
||
|
设置各元素之间的水平间距 |
||
|
设置列数 |
||
|
设置拉伸模式 |
||
|
设置各元素之间的垂直间距 |
android:stretchMode:支持的属性:
NO_STRETCH:不拉伸
STRETCH_COLUMN_WIDTH:仅拉伸表格元素本身
STRETCH_SPACING:仅拉伸元素之间的间距
STRETCH_SPACING_UNIFORM:表格元素本身、元素之间的间距一起拉伸
4.列表选择框Spinner:
用下拉列表的形式显示列表项。
Spinner支持的XML属性和相关方法:
|
Attribute Name |
Related Method |
Description |
|
设置选择框的水平偏移量 |
||
|
设定spinnerMode=”dropdown”时列表选择器的显示效果 |
||
|
设置选择框的垂直偏移量 |
||
|
设置选择框的宽度 |
||
|
设置对齐方式 |
||
|
设置选择框的背景色 |
||
|
设置选择框的提示信息 |
||
|
设置Spinner的显示模式 |
spinnerMode可选的属性:
dialog = 0:Spinner会被作为一个对口窗体来显示
dropdown = 1:Spinner会作为一个内嵌的下拉列表来显示
5.Gallery
显示一个水平的列表选择框。同意用户通过拖动来查看上一个、下一个。
Android推荐使用HorizontalScrollView和ViewPager组件来取代Gallery。
6.AdapterViewFlipper
继承自AdapterViewAnimator,AdapterViewFlipper每次仅仅能显示Adapter中的一个列表项。程序通过showPrevious()和showNext()方法来显示上一个、下一个列表项。组件切换时能够自己主动动画效果。
还有startFlipper()方法用于自己主动播放下一个列表项。
AdapterViewAnimator支持的XML属性和相关方法:
|
Attribute Name |
Related Method |
Description |
|
设置显示第一个列表项时是否使用动画 |
||
|
设置组件显示时使用的动画 |
||
|
设置循环究竟是否转头到第一个列表项 |
||
|
设置组件隐藏时使用的动画 |
AdapterViewFlipper支持的XML属性和相关方法:
|
Attribute Name |
Related Method |
Description |
|
startFlipping() |
设置该组件是否自己主动播放 |
|
|
设置自己主动播放的时间间隔 |
7.StackView
继承自AdapterViewAnimator,StackView把列表项“堆叠”在一起,以这样的方式显示列表项。程序通过showPrevious()和showNext()方法来显示上一个、下一个列表项。
列表项切换时出现的是堆叠一起的卡片会出现的动画效果。
Android学习笔记(23):列表项的容器—AdapterView的子类们的更多相关文章
- android学习笔记23——菜单
菜单在桌面应用程序中使用非常广泛,由于手机屏幕的制约,菜单在手机应用中减少不少. android应用中的菜单默认是不可见的,只有当用户单击手机上“Menu”键时,系统才会显示该应用关联的采用项. an ...
- android学习笔记12——ListView、ListActivity
ListView.ListActivity ==> ListView以垂直列表的形式显示所有列表项. 创建ListView的方式: 1.直接使用ListView创建 2.Activity继承Li ...
- Android学习笔记之JSON数据解析
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...
- Android学习笔记36:使用SQLite方式存储数据
在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...
- 【转】 Pro Android学习笔记(四十):Fragment(5):适应不同屏幕或排版
目录(?)[-] 设置横排和竖排的不同排版风格 改写代码 对于fragment,经常涉及不同屏幕尺寸和不同的排版风格.我们在基础小例子上做一下改动,在横排的时候,仍是现实左右两个fragment,在竖 ...
- 【转】Pro Android学习笔记(三十):Menu(1):了解Menu
目录(?)[-] 创建Menu MenuItem的属性itemId MenuItem的属性groupId MenuItem的属性orderId MenuItem的属性可选属性 Menu触发 onOpt ...
- 【转】Pro Android学习笔记(二):开发环境:基础概念、连接真实设备、生命周期
在Android学习笔记(二):安装环境中已经有相应的内容.看看何为新.这是在source网站上的Android架构图,和标准图没有区别,只是这张图颜色好看多了,录之.本笔记主要讲述Android开发 ...
- Android学习笔记(一)
目录 Android学习笔记(一) 一.JDK.Android SDK 二.部分项目结构 三.字符串引用 四.外层build.gradle详解 五.app->build.gradle详解 六.日 ...
- python学习笔记整理——列表
Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) ...
随机推荐
- thinkphp 中模型究竟是什么用?
thinkphp 中模型究竟是什么用? 问题 似乎所有的操作都能在控制器中就能完成,模型除了几种验证之外,究竟是干什么用的,这个问题一直没理解透 解答 解答一 要明白这个问题,必须了解 MVC 历史. ...
- 46. AngularJS所有版本下载
转自:https://www.cnblogs.com/best/tag/Angular/ 官网下载:https://angularjs.org/ AngularJS所有版本下载:https://cod ...
- 插入记录INSERT(二十五)
插入记录INSERT 我们先来看第一个操作:INSERT 实际上在mysql当中一共存在着3种不同的insert语句,我们先来看第一种.它的语法结构如下: 一.插入记录 INSERT [INTO] t ...
- PostgreSQL Replication之第五章 设置同步复制(2)
5.2 理解实际影响和性能 在本章中,我们已经讨论了实际影响以及性能影响.但是,有什么好的理论性的例子吗?让我们做一个简单的基准测试,看看复制是怎么做的.我们做这样的测试来为您显示各种耐久性的级别不只 ...
- C#中Request.Cookies 和 Response.Cookies 的区别分析
.NET中提供了读写Cookie的多种方法,Request.Cookies 是客户端通过 Cookie 标头形式由客户端传输到服务器的 Cookie:Response.Cookies 在服务器上创建并 ...
- Windows7 安装ubuntu双系统
家里的老笔记本是MBR分区,不支持EFI , 一开始是用U盘安装的,还对着ubuntu官网的教程,下载了官方推荐的那个u盘引导工具,安装依然会报错, 网上查询也有很多种说法,也有说是bug的,无论如何 ...
- MySQL 大数据量文本插入
导入几万条数据需要等好几分钟的朋友来围观一下! 百万条数据插入,只在一瞬间.呵呵夸张,夸张!! 不到半分钟是真的! 插入指令: load data infile 'c:/wamp/tmp/Data_O ...
- zabbix 使用自带模板监控mysql
1.这里可以采用zabbix自带的mysql模版,但是也需要在mysql服务器上准备获取mysql status的脚本chk_mysql.sh,zabbix通过调用这个脚本来获取mysql的运行信息. ...
- Python中的list,tuple,dict和set
List list的创建与检索 Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 构造list非常简单,直接用 [ ] 把list的所有元素都括 ...
- Spring Boot学习总结(2)——Spring Boot整合Jsp
怎么使用jsp上面起了疑问,查阅了多方资料,找到过其他人的博客的描述,也找到了spring在github上的给出的例子,看完后稍微改动后成功 整合jsp,于是决定将整合过程记载下来. 无论使用的是那种 ...