读书人

ScrollView嵌套GridView、ListView的解

发布时间: 2012-06-27 14:20:09 作者: rapoo

ScrollView嵌套GridView、ListView的解决办法
问题:
在Android开发当中经常会用到了需要ScrollView嵌套GridView或者是ListView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView或ListView会显示不全。
解决方案:
自定义GridView或ListView,去掉其滚动条。一下为GridView的例子。
复写GridView:

package com.yang.widget;  import android.content.Context; import android.util.AttributeSet; import android.widget.GridView;  public class MyGridView extends GridView {     public MyGridView(Context context, AttributeSet attrs) {         super(context, attrs);     }      public MyGridView(Context context) {         super(context);     }      public MyGridView(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);     }  } package com.yang.widget;import android.content.Context;import android.util.AttributeSet;import android.widget.GridView;public class MyGridView extends GridView { public MyGridView(Context context, AttributeSet attrs) {  super(context, attrs); } public MyGridView(Context context) {  super(context); } public MyGridView(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); }}

在布局文件当中使用自定义的GridView:
 <com.yang.widget.MyGridView              android:id="@id/bolg_category_gridview"              android:layout_width="fill_parent"              android:layout_height="wrap_content"              android:gravity="center"              android:horizontalSpacing="5dp"              android:numColumns="4"              android:stretchMode="columnWidth"              android:verticalSpacing="6dp" />    <com.yang.widget.MyGridView                android:id="@id/bolg_category_gridview"                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:gravity="center"                android:horizontalSpacing="5dp"                android:numColumns="4"                android:stretchMode="columnWidth"                android:verticalSpacing="6dp" />

读书人网 >移动开发

热点推荐