Android在Fragment中实现监听触摸事件
本文给大家介绍的是监听Fragment的触摸事件实现。如果大家有更好的机制,可以留言交流,下面来看看详细的介绍:
大家都知道,我们的activity中有onTouchEvent
方法,可以用来实现触摸事件的监听。
activity的触摸事件
@Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); }
但是对于Fragment
,其中却没有这个方法,如果我们在fragment
中想要监听触摸事件 该如何实现呢?
我的方法是,自己实现触摸事件的分发。
先定义一个接口
public interface MyOnTouchListener { public boolean onTouch(MotionEvent ev); }
再搞一个list
存储listener
private ArrayList<MyOnTouchListener> onTouchListeners = new ArrayList<MyOnTouchListener>( 10);
再自己实现注册,与销毁以及分发
fragment
触摸事件分发,将触摸事件分发给每个能够响应的fragment
@Override public boolean dispatchTouchEvent(MotionEvent ev) { for (MyOnTouchListener listener : onTouchListeners) { if(listener != null) { listener.onTouch(ev); } } return super.dispatchTouchEvent(ev); } public void registerMyOnTouchListener(MyOnTouchListener myOnTouchListener) { onTouchListeners.add(myOnTouchListener); } public void unregisterMyOnTouchListener(MyOnTouchListener myOnTouchListener) { onTouchListeners.remove(myOnTouchListener) ; }
那么在fragment
中 我们这样使用即可:初始化监听器,然后向activity
注册,同时监听器中监听手势动作。
onTouchListener = new MusicActivity.MyOnTouchListener() { @Override public boolean onTouch(MotionEvent ev) { gestureDetector.onTouchEvent(ev); return false; } }; ((MusicActivity) getActivity()).registerMyOnTouchListener(onTouchListener);
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题
前言 之前在做一个Viewpager上面加载多个Fragment时总会实例化已经创建好的Fragmnet对象类似 viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { switch(position){ case 0: fragments=new Fragmnet01(); break; case
-
Android 使用Fragment模仿微信界面的实例代码
什么是Fragment 自从Android 3.0中引入fragments 的概念,根据词海的翻译可以译为:碎片.片段.其目的是为了解决不同屏幕分辩率的动态和灵活UI设计.大屏幕如平板小屏幕如手机,平板电脑的设计使得其有更多的空间来放更多的UI组件,而多出来的空间存放UI使其会产生更多的交互,从而诞生了fragments . fragments 的设计不需要你来亲自管理view hierarchy 的复杂变化,通过将Activity 的布局分散到frament 中,可以在运行时修改activit
-
Android使用TabLayout+Fragment实现顶部选项卡
先看效果图: 使用Tablayout,首先需要在项目中加入Design包 dependencies { compile 'com.android.support:design:24.1.1' } 在activity_main.xml布局文件中 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/
-
Android实现底部图标与Fragment的联动实例
本文介绍了ndroid实现底部图标与Fragment的联动,分享给大家,希望此文章对各位有所帮助. 效果如下: 1.首先在res下的drawable下新建四个图标的xml,分别把图标的选中和未选中的状态设置好,所有的图片可以放在res下新建的一个drawable-xhdpi目录下,这里仅展示一个图标的xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="ht
-
Android使用TabLayou+fragment+viewpager实现滑动切换页面效果
TabLayou 主要实现的是标题头的 滑动 这个 控件 类似于 ScrollView XML中的布局 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <android.support.design.widget.TabLayout a
-
Android 两个Fragment之间的跳转和数据的传递实例详解
Android 两个Fragment之间的跳转和数据的传递实例详解 作为一个Android的菜鸟,前些天在做项目的时候用到了fragment,需求是从一个Fragment跳转到另一个Fragment,并且还要传递数据,就像Activity的跳转一样.在网上找了好久都没找到很好的列子,最后通过看别人的博客和查文档终于做好了,现在整理一下,希望能帮助有需要的童鞋. 1.首先在第一个Fragment 里面拿到FragmentManger 和FragmentTransaction 代码如下. @Ove
-
android中Fragment+RadioButton实现底部导航栏
在App中经常看到这样的tab底部导航栏 那么这种效果是如何实现,实现的方式有很多种,最常见的就是使用Fragment+RadioButton去实现.下面我们来写一个例子 首先我们先在activity_mian.xml定义布局,整个布局的外面是线性布局,上面是帧布局切换不同的Fragment,底下是RadioGroup嵌套的是RadioButton.代码如下所示: <?xml version="1.0" encoding="utf-8"?> <Li
-
Android在Fragment中实现监听触摸事件
本文给大家介绍的是监听Fragment的触摸事件实现.如果大家有更好的机制,可以留言交流,下面来看看详细的介绍: 大家都知道,我们的activity中有onTouchEvent方法,可以用来实现触摸事件的监听. activity的触摸事件 @Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } 但是对于Fragment,其中却没有这个方法,如果我们在fragmen
-
JavaScript监听触摸事件代码实例
这篇文章主要介绍了JavaScript监听触摸事件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 监听 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, use
-
vue中对监听esc事件和退出全屏问题的解决方案
目录 对监听esc事件和退出全屏问题的解决 下面是全屏的完整代码 element+vue全屏与退出全屏(监听ESC改样式) 一.效果 二.代码 对监听esc事件和退出全屏问题的解决 vue 的项目中使用了 h5 的全屏 API,在使用esc键退出全屏时,默认调用“ document.exitFullScreen() ” 直接退出,想要做监听并设置业务,需要监听屏幕size变化来出发事件 mounted() { let that = this window.addEven
-
Python pygame项目实战监听退出事件
目录 1. 事件监听 2. 案例演示 2.1 案例大体思路 2.2 代码演示 2.3 运行结果 1. 事件监听 首先,我们简单回顾一下事件监听,可以简单概括如下: 在游戏循环中,我们希望判断用户具体操作 只有捕获到用户具体的操作,才能有针对性的做出响应 简而言之,在游戏循环中编写一小段代码,通过这一小段代码,判断用户的具体操作行为,这个就叫做监听 注意:我们想在游戏中实现监听退出事件并且退出游戏,其实代码非常固定(代码形式都差不多),因为几乎所有的pygame游戏都大同小异. 2. 案例演示 2
-
Android 中的监听和按键处理详情
目录 各种监听 按键处理 onKeyDown() onBackPressed() Fragment中监听Back返回键 各种监听 我们来练习下各种监听.我们在 TextView 上添加了触摸监听,在 Button 上添加了长按监听,在 Spinner 下拉框选项发生变化的时候添加了监听,在 ListView 选中选项时增加了监听. xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-
Android中ScrollView监听滑动距离案例讲解
需求:想实现像美团中列表下拉后出现悬浮窗的效果. 思路:首先对ScrollView进行滑动监听,然后在onScrollChanged()方法中获取到滑动的Y值,接着进行相关操作即可. 效果一如如下: 实现步骤: 1.自定义MyScrollView (1)重写onScrollChanged()获取Y值. (2)自定义滑动监听接口onScrollListener并公开此接口. public class MyScrollView extends ScrollView { private OnScrol
-
Android ListView监听滑动事件的方法(详解)
ListView的主要有两种滑动事件监听方法,OnTouchListener和OnScrollListener 1.OnTouchListener OnTouchListener方法来自View中的监听事件,可以在监听三个Action事件发生时通过MotionEvent的getX()方法或getY()方法获取到当前触摸的坐标值,来对用户的滑动方向进行判断,并可在不同的Action状态中做出相应的处理 mListView.setOnTouchListener(new View.OnTouchLis
-
Android在fragment中编写toobar的步骤详解
第一步的话就是首先导入我们的依赖的包: compile 'com.android.support:appcompat-v7:23.3.0' 第二步的话就是准备我们的布局文件和我们的item 在这的话我是将我们的toobar单独的放在一个布局文件中的方便以后的调用以及将我们的主题改为 我们noactionbar,同时在我们的主文件中进行引用 修改为nopactionbar 引用 设置单独的xml文件 然后的话就是我们在我们的这个位置设置的是我们的啊就是toobar的单独的一个文件代码如下: <?x
-
Android自定义ScrollView使用自定义监听
本文实例为大家分享了Android使用自定义监听的具体代码,供大家参考,具体内容如下 实现效果:自定义一个ScrollView使用自定义监听,当手指在scrollView滑动滑动的时候做一些事情,我这边简单操作就直接弹出静态吐司显示xy轴的坐标(Toast使用的是静态Toast,源码里面有) 这是在自定义的scrollView设置自定义监听 @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()
-
AngularJS中watch监听用法分析
本文实例讲述了AngularJS中watch监听用法.分享给大家供大家参考,具体如下: ANGULAR 监听使用: 当angular数据模型发生变化时,我们需要如果需要根据他的变化触发其他的事件. $watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你. $watch(watchExpression, listener, objectEquality); watchExpression 需要监控的表达式 listener 处理函数,函数参数如下 function
随机推荐
- VS2013设置护眼背景颜色
- Javascript倒计时代码
- ruby 对象的初始化 方法
- DB2 9产品说明书在线参考地址(http)
- 详解Nginx服务器中的nginx.conf配置文件
- 使用python实现递归版汉诺塔示例(汉诺塔递归算法)
- asp.net 关于字符串内范围截取的一点方法总结
- bootstrap布局中input输入框右侧图标点击功能
- .net 反序题目的详细解答第1/2页
- ASP.NET设计网络硬盘之文件夹实现
- 深入理解PHP之OpCode原理详解
- 某大型网络公司应聘时的笔试题目附答案
- android底部菜单栏实现原理与代码
- PHP中substr_count()函数获取子字符串出现次数的方法
- java 出现问题javax.servlet.http.HttpServlet was not found解决方法
- 将mater库中的系统存储过程批量生成*.sql文件 通用且非常实用
- jQuery实现倒计时重新发送短信验证码功能示例
- jQuery链式操作如何实现以及为什么要用链式操作
- Java图像处理教程之正片叠底效果的实现
- javascript实现随时变化着的背景颜色