Android中ExpandableListView的使用(二)

相关文章:

Android中ExpandableListView常用属性总结

Android中ExpandableListView的使用(一)


最近翻看Android关于ExpandableListView的文档,发现了几个很有用的方法,在上一篇文章中没有提及,所以新开了一篇文章来补充一下。

首先是接口部分


除了可以设置子类被点击的监听器外,还可以设置父类被点击的监听器,以及一个列表展开和收起的监听器

接下来看一下具体的方法

收起某一个列表,参数为父类第几项,如果是要收起第一个列表,那么groupPos = 0. 如果这个列表已经收起了,返回值为false,表示收起失败,因为列表已经收起了。如果这个列表还没有收起,那么收起这个列表,返回值为true。

展开列表的用法和收起列表的用法一样,如果列表已经展开,返回false,如果列表还没有展开,返回true。


关于列表的展开还有一个方法


比上一个方法多了一个参数,如果把这个参数设置为true,列表展开的时候会有动画效果,该方法需在API大于等于14的时候才可以用

用于判断列表是否展开的方法


列表已展开,返回true;列表未展开,返回false


上一篇文章中已经提到了为子类的点击事件设置监听器的方法,这里讲一下为父类点击事件,列表收缩事件,列表展开事件设置监听器的方法

为父类的点击事件设置监听器

listview.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
    @Override
    public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
        if (listview.isGroupExpanded(i)) {
            listview.collapseGroup(i);
        } else {
            listview.expandGroup(i, true);
        }
        return true;
    }
});
上面的代码实现的效果是当父类被点击时,判断列表是否展开,如果没有展开的话就展开列表,如果列表已经展开,那么收起列表

为列表收缩事件和展开事件设置监听器

listview.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() {
    @Override
    public void onGroupCollapse(int i) {
        Toast.makeText(ExpandableListViewTestActivity.this, "第" + i + "个列表收缩了", Toast.LENGTH_SHORT).show();
    }
});
listview.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
    @Override
    public void onGroupExpand(int i) {
        Toast.makeText(ExpandableListViewTestActivity.this, "第" + i + "个列表伸展了", Toast.LENGTH_SHORT).show();
    }
});


如果需要进入的时候列表就展开,然后不再收起,可以这样设置:

在setAdapter之后遍历每一个列表使它们展开

for (int i = 0; i < parentList.length; i++) {
     if (!listview.isGroupExpanded(i)) {
        listview.expandGroup(i);
    }
}
然后设置父类的监听器直接返回true即可,不可以设置父类的监听器为null,那样起不到屏蔽原先系统设置的监听器的效果
listview.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
    @Override
    public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) {
        return true;
    }
});



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值