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

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

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

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

13 ответов

19 просмотров

+

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 отрабатывает как надо

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

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

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
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
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта