• 三级扩展列表 学习心得


    @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;
    }
  • 相关阅读:
    IO库 8.5
    IO库 8.4
    标准模板库——IO库
    IO库 8.3
    IO库 8.2
    IO库 8.1
    CF 599D Spongebob and Squares(数学)
    Django入门学习(一)
    hdu 5733
    uva 11210
  • 原文地址:https://www.cnblogs.com/toolbear/p/6095236.html
Copyright © 2020-2023  润新知