1. 程式人生 > >ScrollView巢狀ExpandableListView顯示不正常的問題

ScrollView巢狀ExpandableListView顯示不正常的問題

       關於ScrollView巢狀ExpandableListView導致ExpandableListView顯示不正常的問題解決方法有很多,在這裡介紹一種小編親自測試通過的方法。

重寫ExpandableListView:

package com.jph.view;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ExpandableListView;

/**
 * 重寫ExpandableListView以解決ScrollView巢狀ExpandableListView
 *<br> 導致ExpandableListView顯示不正常的問題
 * @author jph
 * Date:2014.10.21
 */
public class CustomExpandableListView extends ExpandableListView {

	public CustomExpandableListView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

	public CustomExpandableListView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}

	public CustomExpandableListView(Context context, AttributeSet attrs,
			int defStyle) {
		super(context, attrs, defStyle);
		// TODO Auto-generated constructor stub
	}
	 @Override  
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
        // TODO Auto-generated method stub  
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,    
        MeasureSpec.AT_MOST);    
        super.onMeasure(widthMeasureSpec, expandSpec);  
    }  
}

在XML中將ExpandableListView替換為重寫的ExpandableListView即可。
<com.jph.view.CustomExpandableListView android:id="@+id/elItems"
	        android:layout_width="match_parent"
	        android:layout_height="wrap_content"/>