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;
    }
  • 相关阅读:
    bootstrap-table设置表头宽度无效的解决方案
    bootstrap-table设置某列序号自增
    arguments.callee
    javascript中break和continue
    javascript数据类型
    <script>标签的属性
    javascript核心
    javascript中数据属性与访问器属性
    解决ie9以下下不支持html5和媒体查询(Media Queries)
    用firefox获取html页面元素的Xpath
  • 原文地址:https://www.cnblogs.com/toolbear/p/6095236.html
Copyright © 2011-2022 走看看