Я пытаюсь найти простое решение, как отключить копирование/вставку/вырезание в текстовом поле. Я наткнулся на пару вопросов, но без ответа.
Решение проблемы
Создайте пустую панель инструментов:
object EmptyTextToolbar: TextToolbar {
override val status: TextToolbarStatus = TextToolbarStatus.Hidden
override fun hide() { }
override fun showMenu(
rect: Rect,
onCopyRequested: (() -> Unit)?,
onPasteRequested: (() -> Unit)?,
onCutRequested: (() -> Unit)?,
onSelectAllRequested: (() -> Unit)?,
) {
}
}
Затем вы можете предоставить его с помощью LocalTextToolbar
.
Скорее всего, вам также не нужно выделение текста в этом случае, вот как вы можете отключить его:
var textValue by remember { mutableStateOf(TextFieldValue("")) }
CompositionLocalProvider(
LocalTextToolbar provides EmptyTextToolbar
) {
TextField(
value = textValue,
onValueChange = { newValue ->
textValue = if (newValue.selection.length > 0) {
newValue.copy(selection = textValue.selection)
} else {
newValue
}
}
)
}
Комментариев нет:
Отправить комментарий