主要原因 可以看这老哥的 讲解
我个人觉得最好的解决办法就是 继承ListView,修改它的onMeasure方法
这个办法同时也适用于ExpandableListView,其他办法试过有时候会还是会时不时出现问题
个人用这个办法解决List和ExpandableListView,其他list应该也是可以的
不说了,上代码
public class SearchSortList extends ListView {
public SearchSortList(Context context) {
super(context);
}
public SearchSortList(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SearchSortList(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public SearchSortList(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int newHeightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2, // 设计一个较大的值和AT_MOST模式
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, newHeightMeasureSpec);
}