@Override public void onGroupCollapse(int groupPosition) { ConstructionWorkScore.closeHight(); } }); }else { AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, 64); view = new TextView(activity); view.setLayoutParams(layoutParams); // Center the text vertically ((TextView) view).setGravity(Gravity.CENTER_VERTICAL); // Set the text starting position view.setPadding(36, 0, 0, 0); ((TextView) view).setText(string); } return view; }
/**
* Children 's View
*
* @param string
* @return
*/
public View getGenericView(String string) {
final View view ;
if("基础施工部分".equals(string)||"电气施工部分".equals(string)){
List<String> child = null;
AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, 64);
view = new ExpandableListView(activity);
// 次级父集合
nextGroupArray = new ArrayList<String>();
if ("基础施工部分".equals(string)) {
nextGroupArray.add(" 基础施工部分");
} else if ("电气施工部分".equals(string)) {
nextGroupArray.add(" 电气施工部分");
}
// 次级子集合
nextChildArray = new ArrayList<List<String>>();
child = new ArrayList<String>();
child.add(" 安全评分");
child.add(" 质量评分");
child.add(" 文明施工评分");
child.add(" 物资返料评分");
child.add(" 经济处罚");
nextChildArray.add(child);
ExpandableAdapter adapter = new ExpandableAdapter(activity, nextGroupArray, nextChildArray);
((ExpandableListView) view).setAdapter(adapter);
//组展开后重新设置高度
((ExpandableListView) view).setOnGroupClickListener(new OnGroupClickListener() { @Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
ConstructionWorkScore.resetjcHight();
int oneSize = ((ViewGroup) view).getChildAt(groupPosition).getHeight();
ViewGroup.LayoutParams params = view.getLayoutParams();
int allHeight =(nextChildArray.get(groupPosition).size()+1)*oneSize;
params.height =allHeight;
view.setLayoutParams(params);
v.setTag(view);
return false;
}
});
//组收缩调用的监听事件
((ExpandableListView) view).setOnGroupCollapseListener(new OnGroupCollapseListener() {
@Override
public void onGroupCollapse(int groupPosition) {
ConstructionWorkScore.closeHight();
}
}); }else {
AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, 64);
view = new TextView(activity);
view.setLayoutParams(layoutParams);
// Center the text vertically
((TextView) view).setGravity(Gravity.CENTER_VERTICAL);
// Set the text starting position
view.setPadding(36, 0, 0, 0);
((TextView) view).setText(string);
}
return view;
}
重新设置整个列表的方法(在第一个ExpandableListView的类中):
/**
* 打开基础评分
*/
public static void resetjcHight() {
if(openTimes>3){
openTimes=3;
}
ViewGroup.LayoutParams params = scoreList.getLayoutParams();
int avg = allHeight + oneSize *3*openTimes+50;
params.height = avg;
scoreList.setLayoutParams(params);
openTimes=openTimes+1;
}
/**
* 关闭基础评分
*/
public static void closeHight() {
ViewGroup.LayoutParams params = scoreList.getLayoutParams();
int avg = allHeight;
params.height = avg;
scoreList.setLayoutParams(params);
openTimes=openTimes-1;
}