Android学习笔记(23):列表项的容器—AdapterView的子类们

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

AdapterView的子类的子类ListViewGridViewSpinnerGalleryAdapterViewFlipperStackView都是作为容器使用,Adapter负责提供各个列表项的内容。

 

 

1.列表视图ListViewListActivity

以垂直列表的形式显示列表项。

 

生成列表视图有如下两种方法:

(1).直接使用ListView

(2).Activity继承ListActivity

ListView支持的XML属性和相关方法:

Attribute Name

Related Method

Description

android:divider

 

设置List列表项的分隔条(颜色或Drawable

android:dividerHeight

 

设置分隔条的高度

android:entries

 

指定一个数组资源,用于填充列表的内容

android:footerDividersEnabled

 

设置为false,不在footer View前绘制分隔条

android:headerDividersEnabled

 

设置为false,不在header View后绘制分隔条

 

2.可展开的列表视图ExpandableListView

ExpandableListViewListView的子类,它把列表项分为几组,每组里包含多个列表项。

与其他列表视图不同的是:ExpandableListView的列表项应该由ExpandableListAdapter提供。

Adapter类似:ExpandableListAdapter也有三种常用方式:

(1).扩展BaseExpandableListAdapter实现ExpandableListAdapter

(2).使用SimpleExpandableListAdapter将两个List集合包装成ExpandableListAdapter

(3).使用SimpleCursorTreeAdapterCursor中的数据包装成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:columnWidth

setColumnWidth(int)

设置列的宽度

android:gravity

setGravity(int)

设置对齐方式

android:horizontalSpacing

setHorizontalSpacing(int)

设置各元素之间的水平间距

android:numColumns

setNumColumns(int)

设置列数

android:stretchMode

setStretchMode(int)

设置拉伸模式

android:verticalSpacing

setVerticalSpacing(int)

设置各元素之间的垂直间距

 

android:stretchMode:支持的属性:

NO_STRETCH:不拉伸

STRETCH_COLUMN_WIDTH:仅拉伸表格元素本身

STRETCH_SPACING:仅拉伸元素之间的间距

STRETCH_SPACING_UNIFORM:表格元素本身、元素之间的间距一起拉伸

 

4.列表选择框Spinner:

 

用下拉列表的形式显示列表项。

Spinner支持的XML属性和相关方法:

Attribute Name

Related Method

Description

android:dropDownHorizontalOffset

setDropDownHorizontalOffset(int)

设置选择框的水平偏移量

android:dropDownSelector

 

设定spinnerMode=”dropdown”时列表选择器的显示效果

android:dropDownVerticalOffset

setDropDownVerticalOffset(int)

设置选择框的垂直偏移量

android:dropDownWidth

setDropDownWidth(int)

设置选择框的宽度

android:gravity

setGravity(int)

设置对齐方式

android:popupBackground

setPopupBackgroundResource(int)

设置选择框的背景色

android:prompt

 

设置选择框的提示信息

android:spinnerMode

 

设置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

android:animateFirstView

 

设置显示第一个列表项时是否使用动画

android:inAnimation

 

设置组件显示时使用的动画

android:loopViews

 

设置循环到底是否转头到第一个列表项

android:outAnimation

 

设置组件隐藏时使用的动画

 

AdapterViewFlipper支持的XML属性和相关方法:

Attribute Name

Related Method

Description

android:autoStart

startFlipping()

设置该组件是否自动播放

android:flipInterval

setFlipInterval(int)

设置自动播放的时间间隔

 

7.StackView

继承自AdapterViewAnimator,StackView把列表项“堆叠”在一起,以这种方式显示列表项。程序通过showPrevious()和showNext()方法来显示上一个、下一个列表项。

列表项切换时出现的是堆叠一起的卡片会出现的动画效果。

 

 

 

 

目录
相关文章
|
5月前
|
存储 数据库 Android开发
安卓Jetpack Compose+Kotlin,支持从本地添加音频文件到播放列表,支持删除,使用ExoPlayer播放音乐
为了在UI界面添加用于添加和删除本地音乐文件的按钮,以及相关的播放功能,你需要实现以下几个步骤: 1. **集成用户选择本地音乐**:允许用户从设备中选择音乐文件。 2. **创建UI按钮**:在界面中创建添加和删除按钮。 3. **数据库功能**:使用Room数据库来存储音频文件信息。 4. **更新ViewModel**:处理添加、删除和播放音频文件的逻辑。 5. **UI实现**:在UI层支持添加、删除音乐以及播放功能。
|
3月前
|
容器
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Group Box的使用及说明
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Group Box的使用及说明
279 3
|
3月前
|
容器
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
131 2
|
3月前
|
Android开发 开发者 UED
Android项目架构设计问题之加载数据到列表如何解决
Android项目架构设计问题之加载数据到列表如何解决
34 0
|
5月前
|
存储 API Android开发
29. 【Android教程】折叠列表 ExpandableListView
29. 【Android教程】折叠列表 ExpandableListView
507 2
|
5月前
|
前端开发 API Android开发
25. 【Android教程】列表控件 ListView
25. 【Android教程】列表控件 ListView
178 2
|
5月前
|
安全 Java API
Android获取Wi-Fi网络列表
【6月更文挑战第21天】
|
6月前
|
安全 Linux Docker
Ubantu docker学习笔记(六)容器数据卷
Ubantu docker学习笔记(六)容器数据卷
Ubantu docker学习笔记(六)容器数据卷
|
6月前
|
Prometheus 监控 Cloud Native
Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus
Ubantu docker学习笔记(九)容器监控 自带的监控+sysdig+scope+cAdvisor+prometheus
|
6月前
|
网络协议 Docker 容器
Ubantu docker学习笔记(七)容器网络
Ubantu docker学习笔记(七)容器网络
下一篇
无影云桌面