禁掉别的滑动控件的滑动原理类似,都是重写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);
}
}
本文介绍了一种通过重写dispatchTouchEvent方法来禁用GridView滑动的方法,并提供了一个具体的实现示例。此外,还展示了如何让GridView自适应高度。
384

被折叠的 条评论
为什么被折叠?



