1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android 防止同时按下两个按钮触发两个事件 连续点击事件

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

时间:2022-06-27 19:21:22

相关推荐

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

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

1. 在这两个按钮 或其他控件 的父控件上加上

android:splitMotionEvents="false" 是否允许多点触控

2. 在style中配置

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

<!-- 防止同时按下两个按钮 -->

<item name="android:windowEnableSplitTouch">false</item>

<item name="android:splitMotionEvents">false</item>

</style>

3. 在代码中配置

/**

* @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 MIN_CLICK_DELAY_TIME = 500;

private static long lastClickTime;

public static boolean isFastClick() {

boolean flag = false;

long curClickTime = System.currentTimeMillis();

if ((curClickTime - lastClickTime) >= MIN_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_

来源:CSDN

原文:/EvloutionPLUS/article/details/80541022

版权声明:本文为博主原创文章,转载请附上博文链接!

Android:禁用全局多点触控

在application引用的Theme中添加以下代码:

<item name="android:windowEnableSplitTouch">false</item>

<item name="android:splitMotionEvents">false</item>

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

下面是示例源码

<!--应用所有界面样式,无标题栏,禁用多点触控--><stylename="App_NoTitleBar"parent="android:Theme"><itemname="android:windowNoTitle">true</item><itemname="android:windowEnableSplitTouch">false</item><itemname="android:splitMotionEvents">false</item></style><!--应用所有界面样式,无标题栏,禁用多点触控--><stylename="App_NoTitleBar"parent="android:Theme"><itemname="android:windowNoTitle">true</item><itemname="android:windowEnableSplitTouch">false</item><itemname="android:splitMotionEvents">false</item></style>

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

只需要在外面Layout中设置

[html]view plaincopy

android:splitMotionEvents="false"

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

参考文章:

/aikongmeng/article/details/42238285

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。