现在有一组view的点击事件,优先执行A,后再执行B,C,D其他操作,且它们之前需要一定的延迟,随手写来
viewB.setOnClickListener {
lifecycleScope.launch {
doActionA()
delay(300L)
doActionB()
}
}
viewC.setOnClickListener {
lifecycleScope.launch {
doActionA()
delay(300L)
doActionC()
}
}
viewD.setOnClickListener {
lifecycleScope.launch {
doActionA()
delay(300L)
doActionD()
}
}
优化写法:
// 编写View的扩展方法:
private fun View.onClickDoAction(block: () -> Unit) {
setOnClickListener {
lifecycleScope.launch {
doActionA()
delay(300L)
block()
}
}
}
viewB.onClickDoAction { doActionB() }
viewC.onClickDoAction { doActionC() }
viewD.onClickDoAction { doActionD() }