本文主要讲解一些安卓中实用的compose知识,长期更新
防快速点击
说明
防快速点击主要使用 Modifier 操作符来实现,代码如下
代码
@Composable
fun Modifier.avoidRepeatclickable(millis: Long = 500, onClick: () -> Unit): Modifier {
var timeStamp by remember {
mutableStateOf(0L)
}
return clickable {
if (System.currentTimeMillis() - timeStamp > millis) {
onClick()
timeStamp = System.currentTimeMillis()
}
}
}
复制代码
效果
gif 中有两个按钮,
-
第一个使用正常的 clickable,每次点击悲剧都会变色;
-
第二个按钮使用了我们的防快速点击操作符,500ms 内多次点击之后出发一次背景变色;
Compose 中跳转 Activity,并获取返回结果
说明
这里需要使用 ActivityResult Api,compose 专门进行了扩展
需要使用的扩展库如下:
androidx.activity:activity-compose:1.3.0
复制代码
代码
val launcher = rememberLauncherForActivityResult(contract =object : ActivityResultContract<String, String>() {
override fun parseResult(resultCode: Int, intent: Intent?): String {
return intent?.getStringExtra("data")?:""
}
/**
* @param compose向Compose中传的数据 ActivityResultContract<String, String>的第一个泛型
*/
override fun createIntent(context: Context, input: String?): Intent {
return Intent(context,GenerateActivityResultActivity::class.java).apply {
putExtra("data",input)
}
}
} , onResult = {result-> //result 是ActivityResultContract<String, String>第二个泛型
activityResult = result
})
复制代码
git 地址:github.com/ananananzhu…
效果
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END