障蔽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 也可以达到禁止滑动的目的