package com.finddreams.baselib.view; import android.content.Context; import android.util.AttributeSet; import android.widget.ListView; /** * @Description:ScrollView中嵌套ListView的解决方案, * 解决在scrollview中只显示Listview中一行的问题 * @author http://blog.csdn.net/finddreams */ public class ScrollListView extends ListView { private boolean haveScrollbar = false; public ScrollListView(Context context) { super(context); } public ScrollListView(Context context, AttributeSet attrs) { super(context, attrs); } public ScrollListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setHaveScrollbar(boolean haveScrollbar) { this.haveScrollbar = haveScrollbar; } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if(haveScrollbar){ super.onMeasure(widthMeasureSpec, heightMeasureSpec); }else{ int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } } }