障蔽Gallery的Item拖动选择
屏蔽Gallery的Item拖动选择
遇到一个需求,类似Gallery那样的显示效果,但不希望对它的Item拖动选择。
Gallery的Item能实现拖动是因为Gallery实现了GestureDetector.OnGestureListener,也就是在onScroll里处理的。
要是不让它处理onScroll方法就可以实现item不能拖动了。也就是设置GestureDetector.setIsLongpressEnabled(false)就可以了,但GestureDetector是私有变量没办法对它进行设置。
后来折腾了很久,突然想到能不能通过对Gallery监听touch事件来拦截呢。尝试结果是可以的。
gallery.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_MOVE){ return true; } return false; } });
1 楼
cady36
2011-07-28
相当有用啊。谢谢了。呵呵
2 楼
aa8283242
2011-12-28
在gallery中 覆盖onScroll 方法 返回false 也可以达到禁止滑动的目的