GOOGLE ADS

суббота, 7 мая 2022 г.

Как отключить копирование/вставку/вырезание в TextField Jetpack Compose?

Я пытаюсь найти простое решение, как отключить копирование/вставку/вырезание в текстовом поле. Я наткнулся на пару вопросов, но без ответа.


Решение проблемы

Создайте пустую панель инструментов:

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
}
}
)
}

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...