Fragment回调Activity的事件分发
做的项目中有个功能通过事件分发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的事件分发相关推荐
- 【Android 事件分发】ItemTouchHelper 简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 )
Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...
- Android系列之Fragment(三)----Fragment和Activity之间的通信(含接口回调)
[正文] 一.接口回调的简单引入: 我们先来看一个简单的接口回调的例子: 新建一个Java工程,然后新建一个包.然后新建一个A.java文件: A.java代码如下: 1 package com.cn ...
- 【Android 事件分发】MotionEvent.ACTION_DOWN 按下事件分发流程( Activity | ViewGroup | View )
Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...
- Android 系统(218)---Android的事件分发机制以及滑动冲突的解决
Android的事件分发机制以及滑动冲突的解决 声明: 本文主要涉及VIew的事件分发与滑动冲突的解决,关于View的事件分发流程的部分内容参考自: Android事件分发机制详解:史上最全面.最 ...
- android fragment activity 交互,Android基础之Fragment与Activity交互详解
今天继续讲解Fragment组件的特性,主要是跟Activity的交互和生命周期的关系,我们前面已经说过Fragment是依赖于Activity的,而且生命周期也跟Activity绑定一起.下面我们看 ...
- View事件分发机制(源码分析篇)
01.Android中事件分发顺序 1.1 事件分发的对象是谁 事件分发的对象是事件.注意,事件分发是向下传递的,也就是父到子的顺序. 当用户触摸屏幕时(View或ViewGroup派生的控件),将产 ...
- 【Android 事件分发】ItemTouchHelper 源码分析 ( OnItemTouchListener 事件监听器源码分析 二 )
Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...
- 【Android 事件分发】ItemTouchHelper 源码分析 ( OnItemTouchListener 事件监听器源码分析 )
Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...
- 【Android 事件分发】ItemTouchHelper 事件分发源码分析 ( 绑定 RecyclerView )
Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...
最新文章
- python自动化办公都能做什么菜-python接口自动化
- shellcode学习总结
- 针对谷歌浏览器Chrome的CSS hack
- android samba github,安卓手机访问树莓派samba文件共享出错解决
- gitlab客户端下载配置
- __attribute__((unused)):可能不会用到,消除编译警告
- mysql 大量数据 更改索引_MySql——来自狂神说Java - 贤贤贤sir
- C ++标准是否允许未初始化的bool使程序崩溃?
- MMF与WAV格式的铃声制作全过程
- 无人机怎么设定航线_飞行航线设置方法及装置与流程
- 腾讯云游戏多媒体解决方案
- 7个必收藏的免商用无版权的高清图片网站
- qpython3l表白编程_沫琼的喜欢 | LOFTER(乐乎) - 让兴趣,更有趣
- php+html文本域,html的文本域和表单域
- 这几天来的第一篇日志
- 懂车帝上配置高的国产车为什么那么便宜?
- 威斯康星麦迪逊计算机科学专业,威斯康星大学麦迪逊分校计算机科学专业申请条件汇总...
- C51单片机-串行口2-蓝牙模块-应用例程
- 1T和12T单片机的区别,移动app开发
- 用友java面试题_用友网络科技Java高级开发面试题(2019)