zoukankan      html  css  js  c++  java
  • 三级扩展列表 学习心得

    @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;
    }
  • 相关阅读:
    尖峰冲击测试(spike Testing)
    mysql返回记录的ROWNUM(转)
    SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
    JUnit编写单元测试代码注意点小结
    Linux下Tomcat的启动、关闭、杀死进程
    linux下oracle11g R2的启动与关闭监听、数据库
    linux下使用yum安装mysql详解
    VC++ 实现文件与应用程序关联
    C++ 去掉字符串首尾的 x20 字符
    VC++ 线程同步 总结
  • 原文地址:https://www.cnblogs.com/toolbear/p/6095236.html
Copyright © 2011-2022 走看看