在Fragment中使用GestureDetector

  最近在Fragment中要使用到GestureDetector,但是在Fragment中么有onTouchEvent(MotionEvent event)方法,这下还真是难办了...抓狂但仔细想了想,每个Activity都会有onTouchEvent(MotionEvent event)方法,况且Fragment就是一个Activity的组成部分,那我们是不是可以用某一种机制来传递这种情况呢》?哈哈,恭喜你答对了,是的,我们之间使用观察者模式来处理这种情况

    在Activity中,我们任然复写onTouchEvent(MotionEvent event),不过参数的event需要用我们的Fragment中的GestureDetector对象的event代替而已,那么问题的关键就是获取不同Fragment中生成的不同的GestureDetector对象了。。这里我们假设你要使用到多个Fragment....关键代码:

  

	// 回调接口
	public interface MyTouchListener
	{
		public void onTouchEvent(MotionEvent event);
	}

	public ArrayList<MyTouchListener> listeners = new ArrayList<MainActivity.MyTouchListener>();


	public void registerTouchListener(MyTouchListener listener)
	{
		listeners.add( listener );
	}


	public void unRegisterListener(MyTouchListener listener)
	{
		listeners.remove( listener );
	}
在Activity中通过上面的代码,我们已经准备好了来接受一系列的listener,而这些listener会在不同的Fragment中实例化

Fragment关键代码:

主要是实现MyTouchListener接口,复写里面的onTouchEvent,此时我们的Fragment是不是也有了onTouchEvent方法呢,接下来用你的GestureDetector对象该干嘛干嘛

来个我写的demo:


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值