Android 如何调整事件视图的大小?

Android 如何调整事件视图的大小?,android,expandablelistview,Android,Expandablelistview,我正在ScrollView中使用expandable ListView创建自定义可扩展视图。单击可扩展列表视图时,它应扩展到屏幕的2/3 我试过: expListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v,

我正在ScrollView中使用expandable ListView创建自定义可扩展视图。单击可扩展列表视图时,它应扩展到屏幕的2/3

我试过:

expListView.setOnGroupClickListener(new OnGroupClickListener() {

            @Override
            public boolean onGroupClick(ExpandableListView parent, View v,
                    int groupPosition, long id) {
                 Utility.setListViewHeightBasedOnChildren(expListView);
                return false;
            }
        });
Utility.java:

public class Utility {
    public static int original_height;
    public static void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            // pre-condition
            return;
        }

        int totalHeight = 0;
        int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST);
        for (int i = 0; i < listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
            totalHeight += listItem.getMeasuredHeight();
        }

        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = (totalHeight + (listView.getDividerHeight() * (listAdapter
                .getCount() - 1))) / 2;
        listView.setLayoutParams(params);
        listView.requestLayout();
    }
此代码在设置列表适配器后生效

Utility.setListViewHeightBasedOnChildren(expListView);