码迷,mamicode.com
首页 > 其他好文 > 详细

三级扩展列表 学习心得

时间:2016-11-23 23:15:42      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:pre   code   text   sys   print   rri   元素   int   span   

@Override
public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
    final ExpandableListView expandableListView = getExpandableListView();
    /**
     * 这里每个exListView 只有一个元素, 每个元素代表二级目录的每个目录 
     * 
     */
    EntryChild child = getChild(groupPosition, childPosition);
    ArrayList<EntryChild> arrayList = new ArrayList<EntryChild>();
    arrayList.add(child);
    
    System.out.println("--- > getChildView " + groupPosition +"."+ childPosition + child);
    ChildAdapter childAdapter = new ChildAdapter(context, arrayList);
    expandableListView.setAdapter(childAdapter);

    
    expandableListView.setOnChildClickListener(new OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
            System.out.println("click: " + groupPosition + ", " + childPosition);
            return false;
        }
    });
    /**
     * 子ExpandableListView展开时,因为group只有一项,所以子ExpandableListView的总高度=
     * (子ExpandableListView的child数量 + 1 )* 每一项的高度
     */
    expandableListView.setOnGroupExpandListener(new OnGroupExpandListener() {

        @Override
        public void onGroupExpand(int groupPosition) {
            AbsListView.LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
                    50 * (getChild(groupPosition, childPosition).data.size()+1));
            expandableListView.setLayoutParams(lp);
        }
    });

    /**
     * 子ExpandableListView关闭时,此时只剩下group这一项,
     * 所以子ExpandableListView的总高度即为一项的高度
     * */
    
    expandableListView.setOnGroupCollapseListener(new OnGroupCollapseListener() {
        
        @Override
        public void onGroupCollapse(int groupPosition) {
            LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 50);
            expandableListView.setLayoutParams(lp);
            
        }
    });

    return expandableListView;
}

private ExpandableListView getExpandableListView() {
    ExpandableListView expandableListView = new ExpandableListView(context);
    LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 50);
    expandableListView.setLayoutParams(lp);
    return expandableListView;
}

 

三级扩展列表 学习心得

标签:pre   code   text   sys   print   rri   元素   int   span   

原文地址:http://www.cnblogs.com/toolbear/p/6095236.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!