做的项目中有个功能通过事件分发dispatchTouchEvent()点击输入框以外关闭键盘,Activity中能够正常调用,到了Fragment发现不能调用这个方法了,网上查了资料发现Fragment中是没有dispatchTouchEvent()事件分发的,所以只能通过回调Activity的事件分发来实现这个功能了。

1、Activity

1-1接口

public interface MyTouchListener {

void onTouchEvent(MotionEvent event);

}

// 保存MyTouchListener接口的列表

private ArrayListmyTouchListeners =new ArrayList<>();

1-2提供给Fragment通过getActivity()方法来注册自己的触摸事件的方法

public void registerMyTouchListener(MyTouchListener listener) {

myTouchListeners.add(listener);

}

1-3 提供给Fragment通过getActivity()方法来取消注册自己的触摸事件的方法

public void unRegisterMyTouchListener(PledgeLoanActivity.MyTouchListener listener) {

myTouchListeners.remove(listener);

}

1-4 重写事件分发方法

@Override

public boolean dispatchTouchEvent(MotionEvent ev) {

for (MyTouchListener listener :myTouchListeners) {

listener.onTouchEvent(ev);

}
复制代码

return super.dispatchTouchEvent(ev);

}

2、Fragment

// 将myTouchListener注册到分发列表

((MainActivity)this.getActivity()).registerMyTouchListener(myTouchListener);

ps:通过事件分发dispatchTouchEvent()点击输入框以外关闭键盘

https://www.jianshu.com/p/bade77d6e305

Fragment回调Activity的事件分发相关推荐

  1. 【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

  2. Android系列之Fragment(三)----Fragment和Activity之间的通信(含接口回调)

    [正文] 一.接口回调的简单引入: 我们先来看一个简单的接口回调的例子: 新建一个Java工程,然后新建一个包.然后新建一个A.java文件: A.java代码如下: 1 package com.cn ...

  3. 【Android 事件分发】MotionEvent.ACTION_DOWN 按下事件分发流程( Activity | ViewGroup | View )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

  4. Android 系统(218)---Android的事件分发机制以及滑动冲突的解决

    Android的事件分发机制以及滑动冲突的解决 声明:  本文主要涉及VIew的事件分发与滑动冲突的解决,关于View的事件分发流程的部分内容参考自:  Android事件分发机制详解:史上最全面.最 ...

  5. android fragment activity 交互,Android基础之Fragment与Activity交互详解

    今天继续讲解Fragment组件的特性,主要是跟Activity的交互和生命周期的关系,我们前面已经说过Fragment是依赖于Activity的,而且生命周期也跟Activity绑定一起.下面我们看 ...

  6. View事件分发机制(源码分析篇)

    01.Android中事件分发顺序 1.1 事件分发的对象是谁 事件分发的对象是事件.注意,事件分发是向下传递的,也就是父到子的顺序. 当用户触摸屏幕时(View或ViewGroup派生的控件),将产 ...

  7. 【Android 事件分发】ItemTouchHelper 源码分析 ( OnItemTouchListener 事件监听器源码分析 二 )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

  8. 【Android 事件分发】ItemTouchHelper 源码分析 ( OnItemTouchListener 事件监听器源码分析 )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

  9. 【Android 事件分发】ItemTouchHelper 事件分发源码分析 ( 绑定 RecyclerView )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

最新文章

  1. python自动化办公都能做什么菜-python接口自动化
  2. shellcode学习总结
  3. 针对谷歌浏览器Chrome的CSS hack
  4. android samba github,安卓手机访问树莓派samba文件共享出错解决
  5. gitlab客户端下载配置
  6. __attribute__((unused)):可能不会用到,消除编译警告
  7. mysql 大量数据 更改索引_MySql——来自狂神说Java - 贤贤贤sir
  8. C ++标准是否允许未初始化的bool使程序崩溃?
  9. MMF与WAV格式的铃声制作全过程
  10. 无人机怎么设定航线_飞行航线设置方法及装置与流程
  11. 腾讯云游戏多媒体解决方案
  12. 7个必收藏的免商用无版权的高清图片网站
  13. qpython3l表白编程_沫琼的喜欢 | LOFTER(乐乎) - 让兴趣,更有趣
  14. php+html文本域,html的文本域和表单域
  15. 这几天来的第一篇日志
  16. 懂车帝上配置高的国产车为什么那么便宜?
  17. 威斯康星麦迪逊计算机科学专业,威斯康星大学麦迪逊分校计算机科学专业申请条件汇总...
  18. C51单片机-串行口2-蓝牙模块-应用例程
  19. 1T和12T单片机的区别,移动app开发
  20. 用友java面试题_用友网络科技Java高级开发面试题(2019)

热门文章

  1. HDU2222 Keywords Search(AC自动机模板)
  2. 当UG的License服务器换了后, 客户端如何调整?
  3. Centos7.6 下部署Cobbler
  4. 达芬奇SP型机器人二度获准FDA,可用于特定耳鼻喉手术...
  5. 人工智能,也许是另一场文艺复兴!
  6. 关闭PdfReader右侧工具栏的方法
  7. Linux系统休眠(System Suspend)和设备中断处理
  8. 《iOS 9应用开发入门经典(第7版)》——第1章,第1.6节小结
  9. Windows 驱动发展基金会(九)内核函数
  10. XAML实例教程系列 – 对象和属性