Android UI控件ExpandableListView使用指南
145 浏览量
更新于2024-08-31
收藏 83KB PDF 举报
Android UI控件ExpandableListView基本用法详解
ExpandableListView是Android UI控件中的一种重要组件,它可以显示一个视图垂直滚动显示两级列表中的条目,这不同于列表视图(ListView)。ExpandableListView允许有两个层次:一级列表中有二级列表。这种控件通常用于手机设置中的分类和手机版QQ等应用程序中。
使用ExpandableListView的整体思路可以分为三步:
(1)给ExpandableListView设置适配器,那么必须先设置数据源。数据源就是此处的适配器类ExpandableAdapter,此方法继承了BaseExpandableListAdapter,需要重写里面的10个方法。
(2)数据源中,用到了自定义的View布局,此时根据自己的需求,来设置组和子项的布局样式。getChildView()和getGroupView()方法设置自定义布局。
(3)数据源设置好,直接给ExpandableListView.setAdapter()即可实现此收缩功能。
在实现ExpandableListView时,需要在activity_main.xml中放置一个ExpandableListView控件,例如:
```xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/">
<!-- ExpandableListView控件 -->
<ExpandableListView
android:id="@+id/expandable_list_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
```
在Java代码中,需要创建一个ExpandableAdapter,例如:
```java
public class MyExpandableAdapter extends BaseExpandableListAdapter {
// ...
}
```
然后,在Activity中,创建一个ExpandableListView对象,并设置其Adapter,例如:
```java
public class MyActivity extends Activity {
private ExpandableListView expandableListView;
private MyExpandableAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
expandableListView = (ExpandableListView) findViewById(R.id.expandable_list_view);
adapter = new MyExpandableAdapter();
expandableListView.setAdapter(adapter);
}
}
```
使用ExpandableListView可以实现二级列表的显示,提高用户体验。
2019-07-10 上传
2021-01-05 上传
2019-09-18 上传
2023-05-16 上传
2023-05-27 上传
2023-05-31 上传
2023-05-27 上传
2023-09-29 上传
2023-09-21 上传
weixin_38611877
- 粉丝: 5
- 资源: 925
最新资源
- SimpleRPCFramework是一款基于 Nacos 实现的 RPC 框架。网络传输实现了基于 Java 原生.zip
- 基于SSM+jsp的二手交易平台源码数据库文档.zip
- GPS.rar_GPS_GPS 捕获_GPS数据_捕获 GPS_捕获算法 matlab
- esteban-q-diaz
- Terraform Enterprise / Cloud(tecli)的命令行界面-Golang开发
- typescript-react-redux
- Overpass_for_Magic_Tracks_-_easy_print_magic_3dpstl_
- phpSocialMedia
- cpp代码-链表的合并、排序(O(n^2))-oj
- discord-10man:适用于CS的Discord机器人
- Spring-generator是基于javafx8开发的图形界面Spring代码生成器.zip
- Experiment10.rar_fpga 串口_fpga定时_vhdl 发送数据
- 适用于macOS的SwiftUI Reddit客户端-Swift开发
- efluidDataGate:参选机构
- telescope(望远镜)是一个基于java实现的RDS数据变化查询平台.zip
- 235-lab-verifier:基于网络的COMP235图灵机自动实验室验证器