本文是自己在实践中,发现的问题。
有时候想让界面更加的人性化,就要实现很多的效果,比如只展开一个group,在点击下个group的同时,关闭之前的group
在一个ExpandableListView,如何实现只展开一个group,方法如下:
-
mListView.setOnGroupExpandListener(newOnGroupExpandListener(){
-
-
@Override
-
publicvoidonGroupExpand(intgroupPosition){
-
-
for(inti=0;i<mAdapter.getGroupCount();i++){
-
if(groupPosition!=i){
-
mListView.collapseGroup(i);
-
}
-
}
-
-
}
-
-
});
效果图:
上图的效果,看上去很好,但是存在一个问题,虽然只展开了一个group,但是在点击下一个group的时候,该group的标题不会置顶,这就造成了一些困惑,为了解决这个问题,用到了下边的方法解决:
重写setOnGroupClickListener方法
首先要有一个sign,可以是int sign,用来记录group展开的状态
重写onGroupClick方法
-
-
mListView.setOnGroupClickListener(newOnGroupClickListener(){
-
-
@Override
-
publicbooleanonGroupClick(ExpandableListViewparent,Viewv,
-
intgroupPosition,longid){
-
-
if(sign==-1){
-
-
mListView.expandGroup(groupPosition);
-
-
mListView.setSelectedGroup(groupPosition);
-
sign=groupPosition;
-
}elseif(sign==groupPosition){
-
mListView.collapseGroup(sign);
-
sign=-1;
-
}else{
-
mListView.collapseGroup(sign);
-
-
mListView.expandGroup(groupPosition);
-
-
mListView.setSelectedGroup(groupPosition);
-
sign=groupPosition;
-
}
-
returntrue;
-
}
-
});
运行,看一下效果:
至此,在只打开一个group的同时,标题置顶
最后,补充一下,在group没有child的情况下,不展开group
-
-
mListView
-
.setOnGroupClickListener(newExpandableListView.OnGroupClickListener(){
-
@Override
-
publicbooleanonGroupClick(ExpandableListViewparent,
-
Viewv,intgroupPosition,longid){
-
-
if(childData.get(groupPosition).isEmpty()){
-
returntrue;
-
}else{
-
returnfalse;
-
}
-
}
-
});
分享到:
相关推荐
android ExpandableListView的group和child都有checkbox,而且group默认展开,点击后不收起child。
ExpandableListView的group和child都带CheckBox,并点击group或child时再EditView添加对应Button,child全选时显示group的button,否则显示选中Child的Button
Android实现自定义适配器的ExpandableListView示例,准备一级列表中显示的数据:2个一级列表,分别显示"group1"和"group2",准备第一个一级列表中的二级列表数据:两个二级列表,分别显示"childData1"和"childData2",...
ExpandableListView中group和child都带CheckBox,实现child的全选功能,包含部分选中功能,同时实现类似邮件群发的用户选择功能,选中的用户在EditText中显示,点击后移除.
ExpandableListView中group和child自定义视图带CheckBox,实现child全选、部分选中功能,同时实现类似邮件群发的用户选择功能,选中的用户在EditText中显示,点击后移除. 更新: 1. ExpandableListView勾选后生成的...
String[][] str_child_items_ = {{"这是第一条", "这是第二条"}, {"这是第一条", "这是第二条", "这是第三条"}, {"这是第一条"}, {"这是第一条", "这是第二条"}, {"这是第一条", "这是第二条", "这是第三条", "这是...
ExpandableListView中group和child自定义视图带CheckBox,实现child全选、部分选中功能,同时实现类似邮件群发的用户选择功能,选中的用户在EditText中显示,点击后移除. 更新: 1. ExpandableListView勾选后生成的...
ExpandableListView的group和child里面都含有CheckBox框,二者联动。
只是增加了往上挤出去的动画效果,而且更加简单,只不过还是没有完全到达跟QQ一样的效果,希望有高手能实现更加逼真的效果,下面我们先看看效果图: 我这里没有把ExpandableListView独立出来形成一个新的控件,...
ExpandableListView 的group与child 中添加button 事件响应!
if (type==ExpandableListView.PACKED_POSITION_TYPE_CHILD) { int groupPos =ExpandableListView.getPackedPositionGroup(menuInfo.packedPosition); int childPos =ExpandableListView....
Android ExpandableListView 工作中用到的,所以弄出来做个小例子,感觉比较好用