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);
}
}
最後在布局檔案寫入你自己的控件名字就好了。