Android ExpandableListView group

2017-01-12  本文已影响0人  清枫浦上

前言
  ExpandableListView控件在Android中并不常见,官方的解释是一种用于垂直滚动展示两级列表的视图,和ListView的不同之处就是它可以展示两级列表,分组可以单独展开显示子选项。这些选项的数据是通过ExpandableListAdapter关联的。
  关于ExpandableListView控件的使用方法网上有很多介绍,本篇只介绍关于group组的单一开闭及如何将group组置顶的用法。

演示
先看效果图

GIF.gif

ExpandableListView group开闭及置顶

主要逻辑代码如下

private ExpandableListView mElCommonNum;//获取控件
private int mCurrentPosition = -1;//开关标志
mElCommonNum.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {   
     @Override    
      public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {        
      // 自己控制他们打开或者关闭        
      // elCommonNum.expandGroup(groupPos);// 打开        
      // elCommonNum.collapseGroup(groupPos)// 关闭       
      // elCommonNum.setSelectedGroup(groupPosition);//置顶        
      if (mCurrentPosition == -1) {// 一个没有打开              
          mElCommonNum.expandGroup(groupPosition);            
          mCurrentPosition=groupPosition;            
          mElCommonNum.setSelectedGroup(groupPosition);       
       } else {// 至少有一个打开            
          // 判断一下是否点击自己            
          if(mCurrentPosition==groupPosition){                          
              mElCommonNum.collapseGroup(mCurrentPosition);                
              mCurrentPosition=-1;                
              return true;            
       }           
       // 关闭上一个                      
        mElCommonNum.collapseGroup(mCurrentPosition);                  
        mElCommonNum.expandGroup(groupPosition);            
        mElCommonNum.setSelectedGroup(groupPosition);            
        // 更新position           
       mCurrentPosition=groupPosition;        
    }        
     return true;    
  }}
);

上一篇 下一篇

猜你喜欢

热点阅读