网友通过本文主要向大家介绍了expandablelistview,xexpandablelistview,e路护航网银安全组件,菜鸟打印组件,ca浏览器组件下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
可展开的列表组件——ExpandableListView深入解析,expandablelist展开
可展开的列表组件——ExpandableListView深入解析
一、知识点
1、ExpandableListView常用XML属性
2.ExpandableListView继承BaseExpandableListAdapter后重写的各个函数详解
3.ExpandableListView自定义下拉图标
二、解析
2.1、ExpandableListView常用XML属性
2.1.1 设置点击item项后该item项的背景色
//当你选中某一个item项时,该item项的背景会变色,下面的值是将该背景色设置为透明
android:listSelector="#00000000"
2.1.2 设置item项的高度
//这个是用在item的布局文件里
android:minHeight="50dp"
2.1.3 拖动时背景图片问题
//在拖动的时候背景图片消失变成黑色背景,等到拖动完毕我们自己的背景图片才显示出来
android:scrollingCache=”false”
或 android:cacheColorHint=”#00000000″
2.1.4 分割线高度
android:dividerHeight="1dp"
2.2ExpandableListView继承BaseExpandableListAdapter后重写的各个函数详解
下面的代码几乎每条都给了注释,就不再赘述了。
2.2.1 child.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal" > <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="10dp" android:textSize="18dp" android:text="this" /> </LinearLayout>
2.2.2 group.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="50dp" android:orientation="horizontal" > <ImageView android:layout_marginLeft="10dp" android:layout_gravity="center_vertical" android:id="@+id/arrow" android:layout_width="25dp" android:layout_height="25dp" /> <TextView android:layout_marginLeft="10dp" android:id="@+id/logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:layout_gravity="center_vertical" /> </LinearLayout>
2.2.3 colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="gray">#BEBEBE</color> <color name="SeaGreen1">#54FF9F</color> </resources>
2.2.4 activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ExpandableListView android:id="@+id/expandlist" android:divider="@color/gray" android:childDivider="@color/SeaGreen1" android:layout_width="match_parent" android:layout_height="match_parent" android:groupIndicator="@null" android:listSelector="#00000000" android:dividerHeight="1dp" > </ExpandableListView> </LinearLayout>
2.2.5 MyExpandableListAdapter.java
package com.yds.example; import java.util.List; import java.util.Map; import android.content.Context; import android.database.DataSetObserver; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.ImageView; import android.widget.TextView; public class MyExpandableListAdapter extends BaseExpandableListAdapter { //上下文 Context context; //声明一个布局管理器对象 LayoutInflater inflater; //声明一个组集合 List<Map<String, Object>>group; //声明一个子元素集合 List<List<Map<String, Object>>>child; //声明一个map对象 Map<String, Object>map; /** * 自定义适配器的构造函数 * @param context 上下文 * @param group 组集合 * @param child 子元素集合 */ public MyExpandableListAdapter(Context context,List<Map<String, Object>>group,List<List<Map<String, Object>>>child){ //初始化上下文 this.context = context; //初始化布局管理器对象 inflater = LayoutInflater.from(context); //初始化组集合 this.group = group; //初始化子元素集合 this.child = child; } /** * ExpandableListAdapter里面的所有条目 * 都可用吗?如果是yes,就意味着所有条目可以选择和点击了。 * 返回值