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); } }