По поиску поискал по слову "назад", но нужного не нашел.

Неужели всех устраивает, что TextField теперь требует трёх нажатий кнопки назад вместо двух, чтобы отработать действие назад?

1 нажатие скрывает клавиатуру
2 нажатие убирает фокус с текстового поля
3 нажатие переводит на предыдущий экран бэкстака.

Можно как-то вернуть два нажатия, чтобы не приходилось в каждом текстовом поле добавлять кастомный код?

13 ответов

17 просмотров

+

X- Автор вопроса

На случай, если кому-то уже сейчас нужно решение, то вот мой вариант, который вроде как работает и не сильно плохо выглядит. Конечно, было бы лучше, если бы вместо привязки к goBack, можно было создать событие нажатия кнопки, но я хз как это сделать в композе. Но можно и средствами андроида создать такой keyEvent, это не проблема. Тогда вместо вызова goBack можно будет вызвать еще одно событие нажатия кнопки назад программно. TextField(modifier = Modifier.onKeyEvent { event -> if (event.key.keyCode == 17179869184L) { component.goBack()} false }

X
На случай, если кому-то уже сейчас нужно решение, ...

константа на всех девайсах одинаковая?

X- Автор вопроса
Andrey Kachur
if (event.nativeKeyEvent.keyCode == KEYCODE_BACK) ...

Лучше Key.Back. В common коде тоже есть (спасибо compose-JB)

X- Автор вопроса
Alexander
константа на всех девайсах одинаковая?

Лучше юзать Key.Back, чтобы наверняка.

X
Лучше юзать Key.Back, чтобы наверняка.

Если не смущает аннотация ExperimentalComposeUiApi

X- Автор вопроса
Andrey Kachur
Если не смущает аннотация ExperimentalComposeUiApi

Как раз сейчас добавляю её в список для игнора компилером

X
Как раз сейчас добавляю её в список для игнора ком...

Лучше явно давить OptIn'ом, так легче будет найти потом места с использованием ее

Vitaliy Babichev
Лучше явно давить OptIn'ом, так легче будет найти ...

Её всегда можно убрать из игнора в рамках модуля и точно так же найти все места при надобности :)

X
На случай, если кому-то уже сейчас нужно решение, ...

Интересный момент выявил, вроде работает как надо, при первом нажатии скрытие клавиатуры, при втором делает back на предыдущий экран (фрагменты), но после повторного перехода на этот фрагмент, делает back прям с открытой клавиатурой, и такая закономерность ровно через раз

X- Автор вопроса
Andrey Kachur
Интересный момент выявил, вроде работает как надо,...

Странно, у меня такого нет. Device-specific, может? Потому что скрытие клавиатуры никогда у не должно обрабатываться как назад

X
Странно, у меня такого нет. Device-specific, может...

Похоже на то. На pixel2 отрабатывает как надо

Похожие вопросы

Обсуждают сегодня

Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
14
У меня задача: написать брокер сообщений. Очереди и потребители. Очереди поддерживают приоритеты. Очередь отдает сообщения, только обработчикам с соответствующими характеристи...
Aleksandr Filippov
2
Карта сайта