/**
* 跑马灯
*/
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun MarqueeText(
text: String,
modifier: Modifier = Modifier,
color: Color = Color.Unspecified,
fontSize: TextUnit = TextUnit.Unspecified,
isCopy: Boolean = true,
) {
val clipboardManager = LocalClipboardManager.current
val context = LocalContext.current
val vibrator = context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
Text(
text = text,
modifier = modifier
.basicMarquee()
.combinedClickable(onLongClick = {
if (isCopy) {
clipboardManager.setText(AnnotatedString(text))
ToastUtil.showToast("$text 已复制到剪贴板")
if (vibrator.hasVibrator()) {
vibrator.vibrate(
VibrationEffect.createOneShot(
300,
VibrationEffect.DEFAULT_AMPLITUDE
)
)
}
}
}, onClick = {}), // 核心代码
maxLines = 1,
overflow = TextOverflow.Visible,
softWrap = false,
color = color,
fontSize = fontSize, textAlign = TextAlign.Center
)
}
Compose text 跑马灯效果复制粘贴
于 2025-06-19 09:16:16 首次发布