Android ExpandableListView使用

本文介绍了如何使用ExpandableListView设置一级菜单和二级菜单的点击事件,包括如何通过返回值控制菜单的展开与折叠状态,如何自定义不同状态下的图标显示,并提供了默认展开特定项的方法。

一级菜单点击是事件:

mListView.setOnGroupClickListener(new OnGroupClickListener(){
    @Override
    public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
        //返回值控制是否响应原来的点击事件(打开、关闭二级菜单),true为不响应。
        //此点击事件可以用来实现二级菜单数据网络获取
        return false;
    }
});

二级菜单点击事件:

mListView.setOnChildClickListener(new OnChildClickListener(){
    @Override
    public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
        return false;
    }
});

一级菜单点击改变图标:

1、修改xml中的groupIndicator属性,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_expanded="false"
          android:drawingCacheQuality="auto"
        android:drawable="@drawable/la"/>
    <item android:state_expanded="true"
        android:drawingCacheQuality="auto"
     android:drawable="@drawable/shou"/>
</selector>
android:groupIndicator="@drawable/ex_smallimage"

2、禁用groupIndicator属性:android:groupIndicator="@null",在item布局中添加图片。

public View getGroupView(int groupPosition, boolean isExpanded,
   View convertView, ViewGroup parent) {
        …… 
        ImageView mgroupimage=(ImageView)convertView.findViewById(R.id.mGroupimage);
        mgroupimage.setImageBitmap(mla);
        if(!isExpanded){
            mgroupimage.setImageBitmap(mshou);
        }
        ……
}

同时在修改图片位置还可以修改数组中的标识,来控制默认打开项。

for(int i=0; i<GlobalInfo.strArr.length; i++){
    if(GlobalInfo.strArr[i].equals("1")){
        mListView.expandGroup(i);
    }
}

关闭某一项

mListView.collapseGroup(group);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c小旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值