github地址: https://github.com/liys666666/DoubleClick
DoubleClick---3.0版本
DoubleClick---2.0版本
DoubleClick---1.0版本
1. 說(shuō)明
3.0版本采用的是AOP的方式處理, 性能上會(huì)更好一些.
2.使用方式
① 導(dǎo)入框架
//項(xiàng)目根目錄下,build.gradle
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.8' //添加
}
}
allprojects {
repositories {
...
maven { url 'https://jitpack.io' } //添加
}
}
//app目錄下build.gradle
apply plugin: 'android-aspectjx' //添加
dependencies {
implementation 'com.github.liys666666:DoubleClick:V3.0.0' //添加
}
同一個(gè)按鈕點(diǎn)擊, 默認(rèn)最小間隔時(shí)間是500毫秒. 如果不需要其它的功能, 就搞定解決了. 不需要寫任何代碼, 如果需要額外的功能, 請(qǐng)繼續(xù)往下看.
② 添加自定義屬性
public class AppApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
// V3.0采用單例模式
DoubleClickHelper
.getInstance()
.delayTime(500) //間隔時(shí)間
.addAnnotationClass(UnifiedDoubleClick.class) //自定義屬性, 可疊加
.addAnnotationClass(UnifiedDoubleClick2.class);
}
}
public interface UnifiedDoubleClick{ //用戶自定義接口
// >>>>>>>>>>>>>>>>>>>屏蔽DoubleClick的Activity>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// @ACancelActivity(activitys = {
// MainActivity.class,
// })
// void cancelActivity();
// >>>>>>>>>>>>>>>>>>>單個(gè)view處理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@AAddDoubleClick(activity = MainActivity.class,
addIds = {R.id.btn1, R.id.btn2},
times = {0, 2000}) //點(diǎn)擊的間隔時(shí)間
void mainActivity();
// >>>>>>>>>>>>>>>>>插入自定義clickListener>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@AClickListener(activity = MainActivity.class,
lisenner = LoginClickListener.class, //用戶自定義clickListener
ids = {R.id.btn2})
void interceptMain();
}
//模擬登陸監(jiān)聽(tīng)
public class LoginClickListener implements IOnClickListener {
public static boolean isLogin = false;
@Override
public boolean isNext(View v) {
//判斷登錄邏輯
if(!isLogin){
LogUtil.d("未登錄");
Toast.makeText(v.getContext(), "未登錄", Toast.LENGTH_SHORT).show();
}
return isLogin;
}
@Override
public void after(View view) {
//執(zhí)行click后
}
}
3. V3.0和V2.0使用區(qū)別
①. 3.0導(dǎo)入框架方式多了AOP插件
②. 3.0無(wú)需init()初始化.
③. 2.0的ViewDoubleHelper 換成 DoubleClickHelper 并且是單例模式
④. 3.0 插入自定義的OnClickListener 是要實(shí)現(xiàn) IOnClickListener 接口