在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全。
解决办法,自定义一个GridView控件:
01 |
public class MyGridView extends GridView { |
02 |
public MyGridView(Context context, AttributeSet attrs) { |
03 |
super (context, attrs); |
04 |
} |
05 |
06 |
public MyGridView(Context context) { |
07 |
super (context); |
08 |
} |
09 |
10 |
public MyGridView(Context context, AttributeSet attrs, int defStyle) { |
11 |
super (context, attrs, defStyle); |
12 |
} |
13 |
14 |
@Override |
15 |
public void onMeasure( int widthMeasureSpec, int heightMeasureSpec) { |
16 |
17 |
int expandSpec = MeasureSpec.makeMeasureSpec( |
18 |
Integer.MAX_VALUE >> 2 , MeasureSpec.AT_MOST); |
19 |
super .onMeasure(widthMeasureSpec, expandSpec); |
20 |
} |
21 |
} |
该自定义控件只是重写了GridView的onMeasure方法,使其不会出现滚动条,ScrollView嵌套ListView也是同样的道理,不再赘述。