Android原生的Fragment不像Activity一样有onTouchEvent这样的触摸事件监听,但是可以间接实现。实现的步骤:

第一,首先在Fragment依附的Activity(假设这个Activity名为MainActivity)中增加接口和分发onTouchEvent:

  private ArrayList mFragmentTouchListeners = new ArrayList<>();       public void registerFragmentTouchListener(FragmentTouchListener listener) {        mFragmentTouchListeners.add(listener);    }       public void unRegisterFragmentTouchListener(FragmentTouchListener listener) {        mFragmentTouchListeners.remove(listener);    }     @Override    public boolean dispatchTouchEvent(MotionEvent event) {        for (FragmentTouchListener listener : mFragmentTouchListeners) {            listener.onTouchEvent(event);        }         return super.dispatchTouchEvent(event);    }     public interface FragmentTouchListener {             boolean onTouchEvent(MotionEvent event);    }

 
 
第二,在Fragment中主动注册(View创建成功后,比如在onViewCreated函数回调里面)和注销之前在Activity中定义的FragmentTouchListener:

注册:((MainActivity) this.getActivity()).registerFragmentTouchListener(fragmentTouchListener);注销(在onDestory中):((MainActivity) this.getActivity()).unRegisterFragmentTouchListener(fragmentTouchListener);

第三,接着就可以在Fragment中的FragmentTouchListener(fragmentTouchListener对象)里面的onTouchEvent中捕获和监听触摸点击事件了,fragmentTouchListener监听Fragment触摸事件,具体的就是在onTouchEvent里面捕获和监听MotionEvent:

MainActivity.FragmentTouchListener fragmentTouchListener = new MainActivity.FragmentTouchListener() {        @Override        public boolean onTouchEvent(MotionEvent event) {                return false;        }    };


 

更多相关文章

  1. android view事件分发机制
  2. Android手机归属地查询工具
  3. Android(安卓)View 事件分发处理流程
  4. Android(安卓)进阶到高级 - 突破篇
  5. Java入侵检测(三)
  6. Android(安卓)Touch 事件分发机制
  7. Android(安卓)中文API (91) —— GestureDetector
  8. Android(安卓)拦截Home键的常用方法
  9. Android(安卓)onTouchEvent, onClick及onLongClick的调用机制

随机推荐

  1. 屏蔽应用报错弹框和无响应弹框
  2. 2011.08.12(4)——— android AudioTrack
  3. 获取当前APN,更改APN
  4. 指定Toast显示时长
  5. android ContentProvider onCreate()在 A
  6. android
  7. android studio 降低项目版本错误,no reso
  8. Android(安卓)修改默认USB模式
  9. 【Android】UI-shape的使用
  10. Android修行之路——Dialog