关于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"/>