ListView或者GridView嵌套在ScrollView中:嵌套使用时,会出现ListView/GridView有自己的滚动条,而ScrollView又有自己的滚动条。解决此问题的核心是:重写ListView/GridView的OnMesure方法。
2)xml布局文件加入(假设MyGridView所在的包为com.example.scrollviewandgridview):
3)获取自定义的GridView控件:
以GridView为例(ListView也是重写OnMesure方法,且与GridView的实现一致):
1)重写OnMesure方法:
注意:GridView的构造方法要写全,不能遗漏。
- 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);
- // TODO 自动生成的构造函数存根
- }
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- // TODO 自动生成的方法存根
- int expandSpec = MeasureSpec.makeMeasureSpec(
- Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
- super.onMeasure(widthMeasureSpec, expandSpec);
- }
- }
- <com.example.scrollviewandgridview.MyGridView
- android:id="@+id/mygridview"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:numColumns="2" >
- </com.example.scrollviewandgridview.MyGridView>
MyGridView myGV=(MyGridView) this.findViewById(R.id.mygridview);