ExpandableListView研究
最近想做依照QQ做些那样的效果,所以就用到了ExpandableListView,在网上搜集了一些,在加上自己的总结,如下:
1.自定义 ExpandableListView 的group的样式
目的:把小箭头放在右边
先把 groupIndicator 属性禁掉,android:groupIndicator="@null",然后把自定义的布局加入
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View view = li.inflate(R.layout.expandable_group, null);
ImageView mgroupimage=(ImageView)view.findViewById(R.id.groupimage);
if(!isExpanded){
mgroupimage.setBackgroundResource(R.drawable.btn01);
}else{
mgroupimage.setBackgroundResource(R.drawable.btn02);
}
TextView tv = (TextView) view.findViewById(R.id.groupname);
tv.setText(groups[groupPosition]);
return view;
}
2.只展开一个group,点第一个gorup后,再点第二个group时,第一个会自动收缩
expandablelistview.setOnGroupExpandListener(new OnGroupExpandListener(){
@Override
public void onGroupExpand(int groupPosition) {
// TODO Auto-generated method stub
for(int i=0;i<groups.length;i++){
if(groupPosition != i){
elv.collapseGroup(i);
}
}
}});
3.点击时会出现全部变为黑色的情况
expandablelistview.setCacheColorHint(0);
使用前:
4.如果group没有child时,就不让它展开
expandablelistview.setOnGroupClickListener(new OnGroupClickListener(){
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
// TODO Auto-generated method stub
if(childs.get(groupPosition).isEmpty()){
return true;
}
return false;
}});
5.
android:groupIndicator | 定义group行的指示图标的样式,展开和收缩时图标的变换 |
android:childIndicator | 定义child行的指示图标的样式 |
android:drawSelectorOnTop | 为true时,点击时,出现的颜色会把文字覆盖住,为false时,不会 |
android:transcriptMode | 需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。
通过设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部 |
android:fadingEdge | 设置上边和下边的阴影 |
android:fadeScrollbars |
滚动条的自动隐藏和显示。 |
原创作品,转载请注明出处:转载自道痕