android 防抖,GitHub - yanglw/android-sting: Android 方法防抖插件

本文介绍了一款名为Sting的Android Gradle插件,它允许在编译阶段为onClick和自定义方法实现防抖功能。文章详细讲解了如何添加依赖、配置防抖开关、时间间隔以及白黑名单管理。Sting不支持lambda表达式,适用于全局和特定OnClickListener的防抖设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sting

Sting 是一个基于 Android Gradle Plugin Transform API ,在代码编译阶段注入代码从而实现的方法防抖功能的插件。

Sting 可以实现 OnClickListener.OnClick 方法的防抖,也可以实现任意方法的防抖。

注意

Sting 不支持 lambda 表达式的 OnClickListener.onClick 方法的防抖功能。

使用方式

本库已经上传至 jcenter 仓库中,添加 jcenter 仓库便可以通过远程依赖的方式使用本库。

68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f79616e676c772f616e64726f69642d7374696e672e7376673f6c6162656c3d76657273696f6e

引入插件

buildscript {

repositories {

google()

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:3.3.2'

// 引入插件

classpath 'me.yanglw:android-sting-compiler:last-version'

}

}

allprojects {

repositories {

google()

jcenter()

}

}

插件的引入可以在 Android Application 项目中进行,也可以在 Android Library 项目中进行。

对于需要开启防抖功能的项目,需要在该项目中的 build.gradle 文件中添加插件的引入。

apply plugin: 'me.yanglw.android.sting'

配置 DSL

在默认的情况下,只会开启添加有 Sting 注解的方法的防抖,OnClickListener.onClick 方法的防抖没有开启。可以通过 DSL 的配置,设置功能的开关和防抖时间的间隔。

androidSting {

enable true

onClick {

enable true

interval 2000

whiteNameList = ['']

blackNameList = ['']

}

anno {

enable true

interval 2000

}

}

androidSting.enable 为全局功能的开关,若设置为 false ,则关闭所有的防抖功能。

androidSting.onClick 为 OnClickListener.onClick 方法防抖功能的配置模块。

onClick.enable 为 OnClickListener.onClick 方法防抖功能的开关。

若设置为 false ,则关闭 OnClickListener.onClick 方法防抖功能。

onClick.interval 为 OnClickListener.onClick 方法的防抖时间间隔。

单位为毫秒,默认值为 2000 毫秒。

该值全局 OnClickListener.onClick 方法共享,若需要单独为某一个 OnClickListener.onClick 方法设置时间,请使用 Sting 注解进行。

onClick.whiteNameList 为 OnClickListener.onClick 的白名单过滤列表。

该字段为 List ,每一项为目标类的全称的匹配项,使用正则表达式的方式进行匹配。

若配置了 onClick.whiteNameList ,则所有实现 OnClickListener 接口的类,需要该类的类名匹配 onClick.whiteNameList 中的任意一项才会进行防抖操作。

onClick.blackNameList 为 OnClickListener.onClick 的黑名单过滤列表。

该字段为 List ,每一项为目标类的全称的匹配项,使用正则表达式的方式进行匹配。

若配置了 onClick.blackNameList ,则所有实现 OnClickListener 接口的类,需要该类的类名不匹配 onClick.whiteNameList 中的任意一项才会进行防抖操作。

若同时配置了 onClick.whiteNameList 和 onClick.blackNameList ,则所有实现 OnClickListener 接口的类,需要该类的类名匹配 onClick.whiteNameList 中的任意一项同时需要该类的类名不匹配 onClick.whiteNameList 中的任意一项才会进行防抖操作。

androidSting.anno 为 Sting 注解防抖功能的配置模块。

若要使用该功能,首先需要为项目引入 Sting 注解的依赖。

dependencies {

implementation 'me.yanglw:android-sting-annotation:last-version'

}

之后,便可以在任意非抽象方法上添加 Sting 注解。

public class MainActivity extends Activity {

@Sting(enable = true, interval = 3000)

private void fun(int arg) {

System.out.println("hello world");

}

}

anno.enable 为 Sting 注解防抖功能的开关。

若设置为 false ,则关闭 Sting 注解的防抖功能。

anno.interval 为 Sting

单位为毫秒,默认值为 2000 毫秒。

Sting 注解包含有两个参数:

enable 用于表示当前方法是否开启防抖功能。

若设置为 false ,则关闭当前方法的防抖功能。

interval 用于表示方法的防抖间隔时间。

单位为毫秒,默认值使用 anno.interval 中配置的值。

License

68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f79616e676c772f616e64726f69642d7374696e672e737667

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值