Android 中通过 ClipboardManager
与系统的剪贴板进行交互,如果需要在 Jetpack Compose 中使用它,要使用 LocalClipboardManager
。首先需要获取一个 ClipboardManager
实例,可以通过在 @Composable
函数中调用 LocalClipboardManager.current
来获得。
复制
示例,如何将文本复制到剪贴板:
@Composable
fun CopyToClipboard() {
val clipboardManager = LocalClipboardManager.current
val text = remember { mutableStateOf("") }
Column {
TextField(
value = text.value,
onValueChange = { text.value = it },
label = { Text("https://itmob.cn (Text to copy)") }
)
Button(onClick = { clipboardManager.setText(AnnotatedString(text.value)) }) {
Text("Copy to clipboard")
}
}
}
点击 “Copy to clipboard” 按钮时,将使用 clipboardManager.setText()
将 TextField
中的文本复制到系统的剪贴板。
粘贴
示例,如何从剪贴板粘贴文本:
@Composable
fun PasteFromClipboard() {
val clipboardManager = LocalClipboardManager.current
val text = remember { mutableStateOf("") }
Column {
Text(text = text.value)
Button(onClick = {
val dataFromClip = clipboardManager.getText()
if (dataFromClip != null) {
text.value = dataFromClip.text
}
}) {
Text("Paste from clipboard")
}
}
}
点击 “Paste from clipboard” 按钮时,调用 clipboardManager.getText()
获取剪贴板的内容,并用它来更新 Text 可组合项的值。