Android给控件添加触摸回调
Android给控件添加触摸回调
脑补一个场景,一个页面点击某个按钮会弹出PopupWindow,然后点击PopupWindow以外的任意位置关闭
效果图
实现方法
可以在布局的最外层容器监听触摸事件,下面部分以RelativeLayout为例
1. 重写RelativeLayout
package com.bitmain.btccom.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.RelativeLayout;
import com.bitmain.btccom.interfaces.BitmainOnTouchListener;
/**
 * Created by kongqw on 2016/1/29.
 */
public class BitmainRelativeLayout extends RelativeLayout {
    private BitmainOnTouchListener mOnTouchListener;
    public BitmainRelativeLayout(Context context) {
        super(context);
    }
    public BitmainRelativeLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public BitmainRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    public void setOnTouchHandler(BitmainOnTouchListener onTouchListener) {
        mOnTouchListener = onTouchListener;
    }
    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        // 通知父控件是否将事件传递下来
        // getParent().requestDisallowInterceptTouchEvent(true);
        switch (ev.getAction()) {
            case MotionEvent.ACTION_DOWN:
                if (null != mOnTouchListener)
                    mOnTouchListener.onTouch();
        }
        return super.dispatchTouchEvent(ev);
    }
}2. 触摸回调的接口
package com.bitmain.btccom.interfaces;
/**
 * Created by kongqw on 2016/1/29.
 */
public interface BitmainOnTouchListener {
    public void onTouch();
}3. 使用
// 监听页面被触摸
BitmainRelativeLayout relativeLayout = (BitmainRelativeLayout) findViewById(R.id.relativeLayout);
relativeLayout.setOnTouchHandler(new BitmainOnTouchListener() {
    @Override
    public void onTouch() {
        // TODO 监听到控件被触摸 关掉PopupWindow
        ……
    }
});Android给控件添加触摸回调的更多相关文章
- Android 为控件添加点击涟漪效果
		Android在5.0版为Button默认添加了点击时的涟漪效果,而且在其他的控件上也可以轻松的实现这种炫酷的效果.涟漪效果可以分为两种,一种时有边界的涟漪,另一种时无边界的涟漪.所谓的有边界,即涟漪 ... 
- Android给控件添加默认点击效果
		Android控件点击效果 Android中Button控件是有点击效果的,但是像TextView.ImageView.各种Layout是没有点击效果的,给TextView设置点击事件后,加个点击效果 ... 
- 给jquery-validation插件添加控件的验证回调方法
		jquery-validation.js在前端验证中使用起来非常方便,提供的功能基本上能满足大部分验证需求,例如:1.内置了很多常用的验证方法:2.可以自定义错误显示信息:3.可以自定义错误显示位置: ... 
- eclipse android开发,文本编辑xml文件,给控件添加ID后,R.java,不自动的问题。
		直接编辑xml文件给控件添加id,不自动更新.原来的id写法:@id/et_tel 然后改写成这样:@+id/et_tel 然后就好了!操`1 
- Android 开源控件与常用开发框架开发工具类
		Android的加载动画AVLoadingIndicatorView 项目地址: https://github.com/81813780/AVLoadingIndicatorView 首先,在 bui ... 
- 矩阵, 矩阵  , Android基础控件之ImageView
		天下文章大家抄,以下所有内容,有来自copy,有来自查询,亦有自己的总结(目的是总结出自己的东西),所以说原创,不合适,说是转载也不恰当,所以我称之为笔记,可惜没有此分类选项,姑且不要脸一点,选择为原 ... 
- Android 基本控件相关知识整理
		Android应用开发的一项重要内容就是界面开发.对于用户来说,不管APP包含的逻辑多么复杂,功能多么强大,如果没有提供友好的图形交互界面,将很难吸引最终用户.作为一个程序员如何才能开发出友好的图形界 ... 
- VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)
		上一节中鸡啄米讲了为Ribbon Bar添加控件的方法.本节教程鸡啄米将继续完善前面的实例,讲解一些稍复杂的控件的添加方法,及如何为它们添加消息处理函数. 一.为Ribbon Bar添加更多Ribbo ... 
- Android输入控件EditText和软键盘监听
		1. 跳转到新的页面自动软键盘显示情况: 在配置清单文件AndroidManifest.xml文件,对Activity的windowSoftInputMode属性进行设置. stateUnspecif ... 
随机推荐
- JQuery开发报错集锦
			报错一:JQuery $.each遍历JSON字符串报Uncaught TypeError:Cannot use 'in' operator to search for "70". ... 
- 云如何让App开发更简单?
			欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 互联网"下半场",移动App开发对于质量.速度的要求更加苛刻.4月初,腾讯云正式上线移动开发平台MobileLine,借 ... 
- Python求解啤酒问题(携程2016笔试题)
			问题描述:一位酒商共有5桶葡萄酒和1桶啤酒,6个桶的容量分别为30升.32升.36升.38升.40升和62升,并且只卖整桶酒,不零卖.第一位顾客买走了2整桶葡萄酒,第二位顾客买走的葡萄酒是第一位顾客的 ... 
- CodeForces 912d fishes(优先队列+期望)
			While Grisha was celebrating New Year with Ded Moroz, Misha gifted Sasha a small rectangular pond of ... 
- [Codeforces]853E - Lada Malina
			题目大意:给出平面上$n$个带权点$f_{i}$,再给出$k$个向量$v_{i}$,每次询问给出一个点$p$和一个值$t$,求能满足$f_{i}+\sum w_{j}v_{j}=p(-t<=w_ ... 
- 【LSGDOJ 1408】邮局
			题目描述 一些村庄被建在一条笔直的高边公路边上.我们用一条坐标轴来描述这条高边公路,每一个村庄的坐标都是整数.没有两个村庄坐标相同.两个村庄问的距离,定义为它们坐标值差的绝对值. 我们需要在一些村庄建 ... 
- 【SPOJ839】Optimal Marks 网络流
			You are given an undirected graph G(V, E). Each vertex has a mark which is an integer from the range ... 
- HDU 5723 Abandoned country 最小生成树+搜索
			Abandoned country Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ... 
- Codeforces Round #419 D. Karen and Test
			Karen has just arrived at school, and she has a math test today! The test is about basic addition an ... 
- hdu5569 BestCoder Round #63 (div.2)
			题意: 给你一个矩阵,要求从左上角走到右下角,走个的费用:a[1]*a[2] + a[3]*a[4] + ......+ a[2n-1]*a[2n] 思路: 果然不机智,自己把自己套路了 对于每个奇数 ... 
