ScrollView嵌套GridView的滚动事件解决

来源:互联网 发布:淘宝知己知彼 编辑:程序博客网 时间:2024/05/29 07:03

今天在项目中遇到一个ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,外层的ScrollView会对滚动事件进行拦截,就会存在GridView会显示不全。 


解决办法,继承GridView控件,重写onMeasure方法,使其不会出现滚动条,ScrollView嵌套ListView也是同样的道理:修改如下



/** * <br>类描述:自定义一个GridView控件 * <br>功能详细描述: ScrollView嵌套GridView的解决办法 * * @author  zou * @date  [2014-12-16] */public class BaseGridView extends GridView {    public BaseGridView(Context context, AttributeSet attrs) {        super(context, attrs);    }    public BaseGridView(Context context) {        super(context);    }    public BaseGridView(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);    }}


XML布局代码


            <com.zou.widget.BaseGridView                android:id="@+id/my_grid_view"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:fadingEdge="none"                android:numColumns="4"                android:scrollbars="none"                android:verticalSpacing="15dp" />


Java调用代码 :

    <span style="font-family:Helvetica,Tahoma,Arial,sans-serif;">Base</span>GridView gridview = (<span style="font-family:Helvetica,Tahoma,Arial,sans-serif;">Base</span>GridView) findViewById(R.id.my_grid_view);       gridview.setAdapter(new ImageAdapter(this));  





0 0