美文网首页Andorid的好东西Android开发经验谈Android开发
【Android】不写一句代码解决已有项目点击事件防重问题

【Android】不写一句代码解决已有项目点击事件防重问题

作者: JarryLeo | 来源:发表于2018-05-23 18:16 被阅读166次

安卓端不写一句代码解决已有项目点击事件重复点击的问题

先上酸菜Github地址

不用写任何代码,所有点击事件自动防重复点击;

对 butterKnife 自动生成的点击事件同样有效

默认防重复点击间隔 500ms

如果想自定义点击事件间隔,加上注解(参数单位ms):

@SingleClick(1000)
public void onClick(View v) {
   ...
}

注解参数为0 表示取消防重 不写参数 默认500ms

若在一个点击事件方法有多个view的情况,想排除其中某些view不防双击使用以下方式:

@SingleClick(value = 1000, except = {R.id.tv1, R.id.button})
@OnClick({R.id.tv1, R.id.button, R.id.button2})
public void onViewClicked(View view) {
    ...
}

ps:直接在布局里指定的点击事件无法做到自动防重,请打上注解

本库基于AOP的面向切片原理,不损耗性能,如果觉得好用的话,欢迎给个star支持一下

相关文章

网友评论

  • 积极向上的老王:你好,请问一下aspectj 怎么接入的啊,项目lib里面没有看到
    JarryLeo:你也可以用这个插件接入,省去了依赖和build配置,其实就是稍微改了一下 hugo的插件
    JarryLeo:以插件形式接入的,我自己封装成插件了:apply plugin: 'cn.leo.plugin.magic'
  • 有点健忘:原理是啥,咋拦截点击事件的?
    lllllittlep:原理就是在编译期,在你添加注解得方法中,织入放连点得代码,看build后得文件就可以看到,生成了什么代码
    JarryLeo:原理最后一句话已经说了,你百度一下,内容比较多

本文标题:【Android】不写一句代码解决已有项目点击事件防重问题

本文链接:https://www.haomeiwen.com/subject/bnnrjftx.html