禁止了gridview的滑动,并且解决了当一个滑动控件包裹这个gridview时,gridview只显示一行的问题

来源:互联网 发布:怎么复制图片淘宝店铺 编辑:程序博客网 时间:2024/05/20 13:07

禁掉别的滑动控件的滑动原理类似,都是重写dispatchTouchEvent()方法。

public class NoScrollGridview extends GridView {    public NoScrollGridview(Context context) {        super(context);    }    public NoScrollGridview(Context context, AttributeSet attrs) {        super(context, attrs);    }    public NoScrollGridview(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    @Override    public boolean dispatchTouchEvent(MotionEvent ev) {        // TODO Auto-generated method stub        if (ev.getAction() == MotionEvent.ACTION_MOVE) {            return true;//禁止Gridview进行滑动        }        return super.dispatchTouchEvent(ev);    }    //gridview自适应高度    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);        super.onMeasure(widthMeasureSpec, expandSpec);    }}
0 0