1. 程式人生 > >【問題彙總】ScrollView巢狀GridView的問題

【問題彙總】ScrollView巢狀GridView的問題

在開發中遇到了ScrollView巢狀GridView的情況,由於這兩款控制元件都自帶滾動條,當它們碰到一起的時候便會出問題,即GridView會顯示不全。
解決辦法,自定義一個GridView控制元件。
  1. publicclass MyGridView extends GridView {   
  2.     public MyGridView(Context context, AttributeSet attrs) {   
  3.         super(context, attrs);   
  4.     }   
  5.     public MyGridView(Context context) {   
  6.         super(context);   
  7.     }   
  8.     public MyGridView(Context context, AttributeSet attrs, 
    int defStyle) {   
  9.         super(context, attrs, defStyle);   
  10.     }   
  11.     @Override
  12.     publicvoid onMeasure(int widthMeasureSpec, int heightMeasureSpec) {   
  13.         int expandSpec = MeasureSpec.makeMeasureSpec(   
  14.                 Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);   
  15.         super.onMeasure(widthMeasureSpec, expandSpec);   
  16.     }   
  17. }   
該自定義控制元件只是重寫了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.MyGridViewxmlns: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));  
參考資料