【问题汇总】ScrollView嵌套GridView的问题

在开发中遇到了ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当它们碰到一起的时候便会出问题,即GridView会显示不全。
解决办法,自定义一个GridView控件。

  1. public class MyGridView extends GridView {   
  2.   
  3.     public MyGridView(Context context, AttributeSet attrs) {   
  4.         super(context, attrs);   
  5.     }   
  6.   
  7.     public MyGridView(Context context) {   
  8.         super(context);   
  9.     }   
  10.   
  11.     public MyGridView(Context context, AttributeSet attrs, int defStyle) {   
  12.         super(context, attrs, defStyle);   
  13.     }   
  14.   
  15.     @Override   
  16.     public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {   
  17.   
  18.         int expandSpec = MeasureSpec.makeMeasureSpec(   
  19.                 Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);   
  20.         super.onMeasure(widthMeasureSpec, expandSpec);   
  21.     }   
  22. }   
该自定义控件只是重写了GridView的onMeasure方法。
  1. <ScrollView  
  2.     android:layout_height="wrap_content"   
  3.         android:layout_width="fill_parent"  
  4.     android:id="@+id/scroll_content" >   
  5.     <com.manoel.MyGridView xmlns:android="http://schemas.android.com/apk/res/android"   
  6.         android:id="@+id/grid_view" android:layout_width="fill_parent"   
  7.         android:layout_height="wrap_content" android:numColumns="auto_fit"   
  8.         android:horizontalSpacing="1dip" android:verticalSpacing="1dip"   
  9.         android:columnWidth="150dip" android:stretchMode="columnWidth"   
  10.         android:gravity="center" />   
  11. </ScrollView>  

  1. MyGridView gridview = (MyGridView) findViewById(R.id.grid_view);   
  2. gridview.setAdapter(new MyAdapter(this));  
参考资料

http://fine36.blog.163.com/blog/static/1892510052011615654163/

原文地址:https://www.cnblogs.com/xiaomaohai/p/6158019.html