前言
相信大家在开发工作中,会经常遇见某个控件被重复点击,可能就会造成一些不可预知的问题。例如:跳转某个activity时,点击过快可能就会创建两个相同的界面~
今天就和大家来分享下,利用 kotlin 的拓展函数和拓展属性解决这种问题
第一步:在 res/values 目录下创建一个 ids.xml 的文件,定义两个属性:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="triggerDelayKey" type="id"/>
<item name="triggerLastTimeKey" type="id"/>
</resources>
第二步:在项目中,新建一个 .kt 文件,添加如下函数:
/**
* get set
* 给view添加一个上次触发时间的属性(用来屏蔽连击操作)
*/
private var <T : View>T.triggerLastTime: Long
get() = if (getTag(R.id.triggerLastTimeKey) != null) getTag(R.id.triggerLastTimeKey) as Long else