精华内容
下载资源
问答
  • 安卓(Android)防止用户快速点击本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:禁止快速点击 /** * 防止重复点击 *当前点击的时间 与刚才点击的时间 间隔在1000毫秒 * @...

    安卓(Android)防止用户快速点击


    禁止快速点击

     /**
         * 防止重复点击
         *当前点击的时间 与刚才点击的时间   间隔在1000毫秒
         * @return
         */
        private boolean isFastDoubleClick() {
            long time = System.currentTimeMillis();
            long timeD = time - lastClickTime;
            if (0 < timeD && timeD < 1000) {
                return true;
            }
            lastClickTime = time;
            return false;
        }
    展开全文
  • 禁止安卓手机点击图片弹出

    千次阅读 2018-06-07 14:41:36
    禁止安卓手机点击图片弹出:之前试过在图片上层添加蒙层.pic-ceng{ width:100%; height:100%; position:fixed; left:0; top:0; background:rgba(0,0,0,.3);//透明度 z-index: 999;}后来在论坛看到一个简单的方法: 在...

    禁止安卓手机点击图片弹出:

    之前试过在图片上层添加蒙层

    .pic-ceng{

    width:100%;
    height:100%;
    position:fixed;
    left:0;
    top:0;
    background:rgba(0,0,0,.3);//透明度
    z-index: 999;
    }

    后来在论坛看到一个简单的方法: 在样式中添加如下: img{ pointer-events: none; }  完美解决

    附原贴地址:点击打开链接

    展开全文
  • 秦子帅明确目标,每天进步一点点.....作者| Zhujiang地址|juejin.im/post/5ea66d64f265da...)”“我的一个页面中有一个查询按钮,点击就会发出网络请求,等待返回结果后更新数据。”“这不挺好的嘛!有啥问题啊...

    00ed66c451fd613d69d785f9e2170254.png

    秦子帅明确目标,每天进步一点点.....655768fb098090dbba097fcabe5b4f3a.png
    作者 |  Zhujiang地址 |  juejin.im/post/5ea66d64f265da480836d2b2
    五一期间发文时间改为20:00,五一不停更!
    抛出问题“大哥,有个问题想问你!”“哎,说吧(内心戏:咋又来了。。。准没好事!)”“我的一个页面中有一个查询按钮,点击就会发出网络请求,等待返回结果后更新数据。”“这不挺好的嘛!有啥问题啊?”“对,我也觉得没问题,但测试不按套路出牌啊,测试那边的网络不太好,她点击按钮之后由于网络比较慢就快速多点击了几下,然后。。。”“然后怎么了?ANR了吧?”“你咋知道的大哥?”“来吧,帮您看看吧!”日常开发中肯定遇到过这种情况,接下来咱们就来看看该怎么解决这种问题。


    第一种弹框等待

    “小子,过来,你看啊,你可以这样,当你点击了按钮之后就弹出一个对话框,设置成不能关闭,等网络请求完成之后再将对话框关闭了就行”“这是一种方式,但我该怎么写呢?”“哎,给你写一下例子吧:照着下面代码写就行”
    public void btnDialog(View view) {
            ProgressDialog progressDialog = new ProgressDialog(this);
            progressDialog.setTitle("等待");
            progressDialog.setMessage("等待内容");//progressDialog.setCanceledOnTouchOutside(false);
            progressDialog.show();
        }
    上面代码很简单,这只是一种思路,点击按钮后可以弹出对话框不让用户进行操作(注释的那一行代码就是禁止用户点击的),当请求完成之后再将对话框关闭。不过不推荐这种做法,官方也不推荐,官方推荐使用ProgressBar。

    第二种:禁止点击

    “大哥,我觉得弹出对话框不太好,会让用户很反感,还有别的方式吗?”“行了,早就准备好和你说了,还不止一种呢!这种方式更简单了,只需要设置按钮是否可以点击就行,当用户点击后设置按钮不可点击,请求完成之后再设置可以点击就行了,这个不用我写代码了吧?“”嘿嘿,这个不用,你刚才说还有好几种,说来听听啊!“

    第三种:时间判断

    这种方式比上面的稍微麻烦点,但还是很简单。具体操作就是定义两个变量,一个为上次点击时间,一个为点击的间隔时间。
    // 上次点击时间private long lastClickTime = 0L;// 两次点击间隔时间(毫秒)private static final int FAST_CLICK_DELAY_TIME = 1500;
    在点击时进行判断就可以了,来看一下代码吧:
    public void btnInter(View view) {if (System.currentTimeMillis() - lastClickTime >= FAST_CLICK_DELAY_TIME)
         lastClickTime = System.currentTimeMillis();
      }
    }
    "大哥,这种方法看着比上面两种好用多了,只需要这样定义一下就行了,我就用这一种啊!"“先别高兴的太早了!”

    第四种:AOP实现

    “大哥,你刚才说我高兴的太早了是为啥啊?“”你只有一个页面的话这样写肯定是没有问题的,但是如果有多个页面都有防止按钮重复点击的需求呢?每个页面都定义一遍啊?“”呃呃,你说的对,大哥,那应该怎么办呢?“”你知道AOP吗?接下来我要说的就和它有关“”AOP?那是什么鬼?我知道OOP!“”不错啊小子,还知道OOP,OOP就是面向对象,而AOP就是面向过程。“AOP为Aspect OrientedProgramming的缩写,意为面向切面编程。所谓的面向切面编程其实是对业务逻辑又进行了进一步的抽取,将多种业务逻辑中的公用部分抽取出来做成一种服务(比如日志记录,性能统计等),从而实现代码复用。另外这种服务通过配置可以动态的给程序添加统一控制,利用AOP可以对业务逻辑的各个部分进行分离,从而使得业务逻辑各部分之间的耦合度降低。AOP并不是Android中的产物,而是Java中的,Android官方并没有提供,所以想使用AOP首先要导入可以实现AOP的三方库:在项目级别的build.gradle中新增以下代码:
    classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'
    然后在moudle的build.gradle中新增依赖:
    implementation 'org.aspectj:aspectjrt:1.8.14'
    还需要在moudle的build.gradle中最上面添加以下代码:
    apply plugin: 'android-aspectjx'
    完事之后点击sync Now更新一下。因为想在所有地方都能使用,所以来定义一个注解:
    /**
     * 实现防止按钮连续点击
     * @author jiang zhu on 2020/4/19
     */
    @Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)
    public @interface SingleClick {/* 点击间隔时间 */long value() default 1500;
    }
    注解大家应该都使用过,运行时就不说了,使用范围定义的是方法上,有一个参数为间隔时间,这个参数意思其实和第三种方案中的类似。然后就需要定义一个类,里面实现AOP的具体操作:
    @Aspectpublic class SingleClickAspect {}
    然后定义切点,标记切点为所有被@SingleClick的方法:
    @Pointcut("execution(@com.zj.singclick.SingleClick * *(..))")public void methodAnnotated() {
        }
    这里要注意包名和类名一定要写对。接下来定义一个切面方法,包裹着切点方法:
    @Around("methodAnnotated()")public void aroundJoinPoint(ProceedingJoinPoint joinPoint) throws Throwable {
            View view = null;for (Object arg : joinPoint.getArgs()) {if (arg instanceof View) {
                    view = (View) arg;break;
                }
            }if (view == null) {return;
            }
            MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
            Method method = methodSignature.getMethod();if (!method.isAnnotationPresent(SingleClick.class)) {return;
            }
            SingleClick singleClick = method.getAnnotation(SingleClick.class);if (!isFastDoubleClick(view, singleClick.value())) {
                joinPoint.proceed();
            }
        }
    来简单分析下,首先看注解中定义了刚才定义的切点方法,然后取出方法的参数,再取出方法的注解,然后调用isFastDoubleClick方法判断是否为快速点击事件,如果是什么都不干,如果不是则执行原方法中的内容。下面贴一下isFastDoubleClick方法的代码:
    private static long mLastClickTime;private static int mLastClickViewId;private static boolean isFastDoubleClick(View v, long intervalMillis) {int viewId = v.getId();long time = System.currentTimeMillis();long timeInterval = Math.abs(time - mLastClickTime);if (timeInterval < intervalMillis && viewId == mLastClickViewId) {return true;
            } else {
                mLastClickTime = time;
                mLastClickViewId = viewId;return false;
            }
        }
    上面代码采用了View的id和间隔时间双重判断,即使一个页面的多个按钮都可区分。“大哥,停停停,都给我说懵了,这写完这个该怎么用啊!”“别着急,下面就教你该怎么使用!”使用很简单,只需要在点击时间方法上加上咱们自定义的注解就行了,还可以设置间隔时间,如果不写的话就是默认值,上面也写了,默认值就是1500毫秒。
    @SingleClick(2000)public void btnAop(View view) {
            ToastUtils.showShort("btnAop");
            Log.e(TAG, "btnAop");
        }
    是不是很简单啊?”“大哥,我也不想写这一大堆,我只想用,你能封装成一个库吗?我用的时候直接调用就行!”“哎,行吧,我封装一下。。。。”

    第四种:封装

    “我已经将上面第四种方式封装为了一个库并上传到了JitPack库,下面给你说一下使用方法吧!”使用方法很简单,需要几步配置,配置完成之后直接添加注解即可使用,下面是配置方法:1、在项目的build.gradle中的buildscript中的dependencies添加:
    dependencies {
            ...
            classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'
     }
    2、在项目的build.gradle中的allprojects中的repositories添加:
    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
    3、在app的build.gradle中的最上面添加
    apply plugin: 'android-aspectjx'
    4、在app的build.gradle中的dependencies添加
    implementation 'com.github.zhujiang521:AndroidAOP:1.0.1'
    5、在你需要使用的方法上面添加上注解即可:
    @SingleClick(2000)public void btnAop(View view) {
            ToastUtils.showShort("btnAop");
            Log.e(TAG, "btnAop");
        }
    “小子,会用了吗?”“对了大哥,我的项目中用的是Kotlin啊,我看你写的都是Java,我那里面能用嘛!”“吆喝,还Kotlin呢,放心吧,一样使用!”
    @SingleClick
        override fun onClick(v: View?) {if (v != null) {when(v.id){R.id.btnClick ->{ToastUtils.showShort("哈哈哈")Log.e("哈哈哈","wwww")
                    }
                }
            }
        }

    总结

    “这回可以了吧?”“可以了大哥,嘿嘿,感谢大哥?”“小子,快去改项目吧!”上面场景模拟的有些尴尬?,哈哈哈,大家也可以直接调用。如果文章对你又帮助,欢迎点赞关注,如果文章内容有错误之处,欢迎指出,不胜感激。源码地址:
    https://github.com/zhujiang521/AndroidAOP
    91a8949f81d90ee0e7773051e982f238.pngcc568b5b4866e154afb7c00be9fdd33d.png五一期间不停更,点个在看哈
    展开全文
  • 移动端禁止图片长按和安卓手机点击img标签放大图片,禁止长按识别二维码或保存图片也会使图片的&lt;area&gt;点击热点失效img{ pointer-events: none; }

    移动端禁止图片长按和安卓手机
    点击img标签放大图片,禁止长按识别二维码或保存图片
    也会使图片的<area>点击热点失效

    img{ pointer-events: none; }

    展开全文
  • 安卓手机上,在H5页面,多次点击img标签时,会弹出当前的图片(效果类似查看),再点击,恢复。 解决: 1 css设置img{pointer-events: none; } 这种方式可以解决这个问题,但是当如果你在此时的img上绑定点击事件...
  • 安卓手机软件如何禁止联网?流量对WLAN没有影响—ios7有一个类似的选项,叫做“允许应用程序在后台刷新”,也就是说,它可以用来防止应用程序在后台运行(从网络获取内容)。为了在Android上实现类似的效果,需要像...
  • //禁止安卓手机图片点击 for(var i=0; i('img').length; i++){  document.querySelectorAll('img')[i].addEventListener('click', function(e){  e.preventDefault();  }) } 转载于:...
  • 1、大数据杀熟行为10月1日起明令禁止国庆将至,一条与在线旅游相关的话题——“大数据杀熟行为10月1日起明令禁止”登上微博热搜榜第11名。该条微博话题所涉及的是文化和旅游部最新公布的《在线旅游经营服务管理暂行...
  • 前端开发在开发什么大家..."相关事件"可能包括页面点击,鼠标滑动,定时器,服务端请求等等,"正确的相应"意味着我们要根据相关的事件来修改一些状态,而"网页视图"就是我们前端开发中最熟悉的部分了。按照这样的观...
  • //禁止浏览器后退 window.history.forward(1); 第一种pushHistory(); function pushHistory() { var state = { title: "title", url: "__MODULE__/Index/index...
  • Android 机上禁止点击图片跳出来

    万次阅读 2018-06-07 13:28:29
    安卓机上点击图片会跳出来 禁止用户在安卓手机上点击图片 在样式中添加如下: img{ pointer-events: none; }
  • 之前小柚子写了一个项目,没有用任何的UI组件库,所以当遇到了一个点击上传按钮时需要出现弹框并出现蒙层禁止滑动时遇到了一点点的小问题。本来小柚子是这样写的 var mo = function(e) { e.preventDefault() };...
  • 1、第一种是点击之后禁止点击,然后等操作执行完毕之后再放开点击。 2、第二种是重写OnclickListenrer方法,在里面进行一些操作。 但是上面两种方式都对代码由侵入性。AOP很好的解决了这个问题。 我已经写好了...
  • 安卓应用开发时,经常会在同一个页面有许多不同的控件,在用户操作时,如何正确的在这些控件之间来回切换是良好用户体验的重要问题。可能会碰到如下问题:在点击页面内某控件时(假设控件为Spinner,位于页面底端,...
  • 产品有个需求是两个tab页面可以左右切换,当时立马想到我用viewPager+fragment,但是我们知道viewPager默认是可以左右滑动的,而我的需求是只可点击不可滑动,于是我就翻了一下viewpager的API发现并没有可以设置是否...
  • Insta360GO安卓版APP现已更新两大功能AI剪辑 & 自由旋转GO安卓版APP更新现已发布,最新App版本号为v.1.2.0,安卓用户可在Android应用商店和Insta360官网...操作指南:将视频素材导入APP,点击【故事】->【探...
  • 1、有时候临时加载一个帧较多的动画可能会有点卡,但更重要的是可能会影响到其它的功能,我曾经遇到这样的问题:在点击菜单按钮时播放一个动画,结果这个动画帧数较多,播放的时候有些卡,接着可能出现点击了2次按钮...
  • 需要注意电源管理,应用中锁屏时后台保持运行的设置,或者在正在运行的应用管理中上面有个锁,点击锁定保持后台运行。 为降低功耗,无论应用的目标 SDK 版本为何,Android 8.0 都会对后台应用检索用户当前位置的...
  • 点击右上角关注我们,每天给您带来最新最潮的科技资讯,让您足不出户也知道科技圈大事!12月22日,魅族Flyme官方宣布,魅族17系列即将迎来基于Android 11系统底层的Flymne新版本,除了日常的修复bug和稳定性之外,...
  • 手机小技巧--打开USB调试手机小技巧--USB共享网络手机小技巧--禁止app获取手机信息手机小技巧--手机设置无线路由器手机小技巧--关闭撤销键入提示前天有网友咨询小编,新买了个安卓手机,如何把原来iphone手机里的...
  • 这里写自定义目录标题(安卓手机)微信中禁止点击视频自动全屏 (安卓手机)微信中禁止点击视频自动全屏 最近在做到一个项目是要求微信(企业微信)中打开视频播放,但是微信在安卓手机上播放视频时会自动全屏,解决办法:( ...
  • 随着4G网络的普及,移动网络速度已经可以满足日常的需求,更快...1. 点击开始菜单-设置-网络和internet-状态-数据使用量。2. 进入数据使用量界面,根据自身网络环境,选择对应网络类型(无线or有线),下方可以查看具...
  • 移动端苹果安卓适配

    2019-09-19 16:31:44
    【问题1】:iPhone页面会自动把数字当成电话号码,点击后自动跳到电话拨号界面 方案: meta元标签常见苹果适配问题 【问题2】微信浏览器自动调整页面字体大小 方案:禁止微信浏览器调整页面字体大小 【问题3】用户...
  • 【问题1】iphone页面会自动把数字当成电话号码点击后自动跳到电话拨号界面 <meta name="format-detection" content="telephone=no" /> 【问题2】微信浏览器自动调整页面字体大小 方案*禁止微信浏览器调整页面...
  • 网上搜索了很多关于禁止重复启动安卓应用的问题,很多都不能实现,后来发现一个帖子中的一个方法,在特定情况下能够完成需要的要求。但是偶尔也是不稳定.发现是应用没有完全载入的时候就会出现可以重复打开的问题.不过...
  • 手机小技巧--打开USB调试手机小技巧--USB共享网络手机小技巧--禁止app获取手机信息手机小技巧--手机设置无线路由器手机小技巧--关闭撤销键入提示前天有网友咨询小编,新买了个安卓手机,如何把原来iphone手机里的...
  • air playit在安卓4.0下崩溃

    千次阅读 2013-02-25 08:18:38
    填写完IP以后,点击加入服务器,会提示: air plyait已经停止运行。 有的系统会提示发送错误报告,或者FC。   这个问题,有老外已经说了,是IPV6的问题,2.3的版本没有支持IPV6,反而正常。4.0不知道如何禁止IPV6...
  • 时时总结,不断更新! 一、场景:在项目中,一进入一个...// 先禁止EditText获得焦点 EditText.setFocusable(false); //当edittext点击时候获取焦点,如果实现onClickListener接口,会出现点击两次才会弹出软键盘
  • 一、iPhone页面会自动把数字当成电话号码,点击后自动跳到电话拨号界面 解决方案:禁止手机自动将网页中的电话号码显示为拨号的超链接 <meta name="format-detection" content="telephone=no"/> 二、微信...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

安卓禁止点击