您现在的位置是:首页 > 数码 > 

Android 防止同时按下两个按钮触发两个事件,连续点击事件

2025-07-27 13:22:15
Android 防止同时按下两个按钮触发两个事件,连续点击事件  不知道大家在写程序的时候有没有遇到这种问题,解决的办法很简单。  1. 在这两个按钮 或其他控件 的父控件上加上     android:splitMotionEvents=false 是否允许多点触控  2. 在style中配置 <style name=AppT

Android 防止同时按下两个按钮触发两个事件,连续点击事件

 不知道大家在写程序的时候有没有遇到这种问题,解决的办法很简单。

 1. 在这两个按钮 或其他控件 的父控件上加上
    android:splitMotionEvents=false 是否允许多点触控
 2. 在style中配置
<style name=AppTheme parent=Theme.AppCompat.>
    <!-- 防止同时按下两个按钮 -->
    <item name=android:windowEnableSplitTouch>false</item>
    <item name=android:splitMotionEvents>false</item>
</style>
. 在代码中配置
/**
 * @param event
 * @return 避免同时按两个按钮
 */
@Override
public boolean onTouchEvent(MotionEvent event) {

    if (event.getPointerCount() == 2) {
        Log.i(两个按钮同时按,获得两点的坐标,此时禁止点击事件传递);
        //true,则拦截所有点击事件,按钮的点击事件不会被执行
        return true;
    }
    return false;
}
4. 在2个Button的父布局中加入:android:splitMotionEvents=”false”//不支持多点触控事件

   防止按钮连续点击:
           我们会遇到这样连续不断的点击会出现一直在运行按钮的方法。这样是有问题的,我的解决办法是新建了一个类,调用这个方法就ok了。

           

public class Utils {

    // 两次点击按钮之间的点击间隔不能少于1000毫秒
    private static final int MI_CLICK_DELAY_TIME = 500;
    private static long lastClickTime;

    public static boolean isFastClick() {
        boolean flag = false;
        long curClickTime = ();
        if ((curClickTime - lastClickTime) >= MI_CLICK_DELAY_TIME) {
            flag = true;
        }
        lastClickTime = curClickTime;
        return flag;
    }
}

调用:

btnDown = (Button)findViewById(R.id.btnDown);
btnDown.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                if(Utils.isFastClick()) {
                    sendMsg(btnDown, so, isa);
                }
            }
        }).start();
    }
});
--------------------- 
作者:Evloution_ 
来源:CSD 
原文: 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

Android:禁用全局多点触控

 

在application引用的Theme中添加以下代码:
<item name=android:windowEnableSplitTouch>false</item>
        <item name=android:splitMotionEvents>false</item>

可以禁用全局多点触控,如果要单独弄,则在需要的xml添加

下面是示例源码

  1. <!-- 应用所有界面样式,无标题栏,禁用多点触控 -->  
  2.     <style name=App_oTitleBar parent=android:Theme>  
  3.         <item name=android:windowoTitle>true</item>  
  4.         <item name=android:windowEnableSplitTouch>false</item>  
  5.         <item name=android:splitMotionEvents>false</item>  
  6.     </style>  
  7. <!-- 应用所有界面样式,无标题栏,禁用多点触控 -->  
  8.     <style name=App_oTitleBar parent=android:Theme>  
  9.         <item name=android:windowoTitle>true</item>  
  10.         <item name=android:windowEnableSplitTouch>false</item>  
  11.         <item name=android:splitMotionEvents>false</item>  
  12.     </style>  

android -布局控件禁用多点触控

只需要在外面Layout中设置

[html] view plain copy

  1. android:splitMotionEvents=false  

这个属性,就可以完美解决这个问题.

参考文章:

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/shuma/857335.html

相关标签:无
上传时间: 2024-02-10 12:22:01
留言与评论(共有 7 条评论)
本站网友 蒜苗炒牛肉
13分钟前 发表
splitMotionEvents=false   这个属性
本站网友 转瞬为风
10分钟前 发表
windowoTitle>true</item>          <item name=android
本站网友 血压正常值
22分钟前 发表
windowEnableSplitTouch>false</item>         <item name=android
本站网友 a4输入法
30分钟前 发表
splitMotionEvents=”false”//不支持多点触控事件    防止按钮连续点击:            我们会遇到这样连续不断的点击会出现一直在运行按钮的方法
本站网友 签署
17分钟前 发表
获得两点的坐标,此时禁止点击事件传递);         //true
本站网友 富士康是做什么的
30分钟前 发表
Android 防止同时按下两个按钮触发两个事件