Android(1)-ListView && ExpandableListView 动态设置Height
Android:ListView && ExpandableListView 动态设置Height
首先是实现的工具类:ScrollViewUtil.java
public class ScrollViewUtil { public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); listView.setLayoutParams(params); } }
1.以下是普通的ListView对ScrollViewUtil.java工具类的使用:ListView
adapter = new ListAdapter(this, examList); examList.setAdapter(adapter); ScrollViewUtil.setListViewHeightBasedOnChildren(examList);
2.以下是ExpandableListView 对ScrollViewUtil.java工具类的使用:ExpandableListView
expListAdapter = new MyExpandableListAdapter(this, eProListGroup, eProListChild); lvEngineerPros.setAdapter(expListAdapter); lvEngineerPros.setOnGroupExpandListener(new onGroupExpandListenerImpl()); lvEngineerPros.setOnGroupCollapseListener(new onGroupCollapseListenerImpl());//组关闭的操作 ScrollViewUtil.setListViewHeightBasedOnChildren(lvEngineerPros);
下面是 onGroupExpandListenerImpl 和 onGroupCollapseListenerImpl的实现
private class onGroupExpandListenerImpl implements OnGroupExpandListener { public void onGroupExpand(int groupPosition) { ScrollViewUtil.setListViewHeightBasedOnChildren(lvEngineerPros); } } private class onGroupCollapseListenerImpl implements OnGroupCollapseListener { public void onGroupCollapse(int groupPosition) { ScrollViewUtil.setListViewHeightBasedOnChildren(lvEngineerPros); } }
--ExpandableListView 的事件触发实现
eListView.setOnChildClickListener(new OnChildClickListener());//子被选中 eListView.setOnGroupClickListener(new OnGroupClickListener());//分组被选中 eListView.setOnGroupExpandListener(new OnGroupExpandListener());//组展开操作 eListView.setOnGroupCollapseListener(new OnGroupCollapseListener());//组关闭的操作
以上事件,如需实现,参考组展开和组关闭.
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号