Я пытаюсь создать полностью настраиваемое TextField в Android с помощью Jetpack Compose
с аппаратной клавиатурой все в порядке, но программная клавиатура не открывается
вот как я начинаю:
(с простого кода)
@Composable
fun MyCustomTextField() {
var text by remember { mutableStateOf("") }
val focusRequester = remember { FocusRequester() }
val keyboardController = LocalSoftwareKeyboardController.current
var hasFocus by remember { mutableStateOf(false) }
Box(
modifier = Modifier
.focusRequester(focusRequester)
.onFocusChanged { hasFocus = it.hasFocus }
.focusable()
.focusTarget()
.clickable {
// Request focus and show keyboard when clicked
if (!hasFocus) {
focusRequester.requestFocus()
} else {
keyboardController?.show()
}
}
.onKeyEvent {
if (it.type == KeyEventType.KeyDown) {
if (it.nativeKeyEvent.keyCode == KeyEvent.KEYCODE_DEL) {
if (text.isNotEmpty()) {
text = text.substring(0, text.length - 1)
}
} else {
text += it.nativeKeyEvent.unicodeChar
.toChar()
.toString()
}
}
false
}
)
{
Text("text:" + text)
}
// Request focus when the composable enters the composition
LaunchedEffect(hasFocus) {
focusRequester.requestFocus()
keyboardController?.show()
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... t-keyboard
Мягкая клавиатура Android для создания сообщений ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1719669709
Anonymous
Я пытаюсь создать полностью настраиваемое TextField в Android с помощью Jetpack Compose
с аппаратной клавиатурой все в порядке, но программная клавиатура не открывается
вот как я начинаю:
(с простого кода)
@Composable
fun MyCustomTextField() {
var text by remember { mutableStateOf("") }
val focusRequester = remember { FocusRequester() }
val keyboardController = LocalSoftwareKeyboardController.current
var hasFocus by remember { mutableStateOf(false) }
Box(
modifier = Modifier
.focusRequester(focusRequester)
.onFocusChanged { hasFocus = it.hasFocus }
.focusable()
.focusTarget()
.clickable {
// Request focus and show keyboard when clicked
if (!hasFocus) {
focusRequester.requestFocus()
} else {
keyboardController?.show()
}
}
.onKeyEvent {
if (it.type == KeyEventType.KeyDown) {
if (it.nativeKeyEvent.keyCode == KeyEvent.KEYCODE_DEL) {
if (text.isNotEmpty()) {
text = text.substring(0, text.length - 1)
}
} else {
text += it.nativeKeyEvent.unicodeChar
.toChar()
.toString()
}
}
false
}
)
{
Text("text:" + text)
}
// Request focus when the composable enters the composition
LaunchedEffect(hasFocus) {
focusRequester.requestFocus()
keyboardController?.show()
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78682010/android-compose-soft-keyboard[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия