天天看點

Android Scollview嵌套Listview,Gridview資料顯示不完全問題

  Android頁面布局的時候,有時會遇到一些較為複雜的頁面,比如商品詳情頁, ScrollView嵌套ListVew或者GridView等很常用。

在不做任務處理的情況下,Listview或者Gridview的資料隻能顯示一行多一點點,其它的就看不到了。要解決這個問題網上有很多方法,計算listview的item高度重新指派,或

者重寫Listview的onMeasure方法都可以,這裡就貼很好用且用的最多的方法。

重寫Listview或者Gridview的onMeasure:

public class MyListView extends ListView {
	public MyListView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public MyListView(Context context) {
		super(context);
	}

	public MyListView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	@Override
	public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
				MeasureSpec.AT_MOST);
		super.onMeasure(widthMeasureSpec, expandSpec);
	}
}
           
public class MyGridView extends GridView {

	public MyGridView(Context context) {
		super(context);
	}

	public MyGridView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public MyGridView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
				MeasureSpec.AT_MOST);
		super.onMeasure(widthMeasureSpec, expandSpec);
	}

}
           

最後在布局檔案寫入你自己的控件名字就好了。