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;
    }
  • 相关阅读:
    python调用WebService遇到的问题'Document' object has no attribute 'set'
    jquery AJAX 拦截器 success error
    js 钩子(hook)
    js 继承
    js Object的复制
    js关于 indexOf
    js重排序,笔记
    js类型检测,笔记
    jquery源码的阅读理解
    Windows IPC 连接详解(转)
  • 原文地址:https://www.cnblogs.com/toolbear/p/6095236.html
Copyright © 2011-2022 走看看