краши у юзеров. Тут говорится о том, что пытается выполнится навигация с фрагмента А на фрагент Б когда юзер уже на Б. Сам переход идет по клику на кнопку, обычный onClickListener с переходом findNavController().navigate(). Подскажите, как такое возможно вообще?
Два раза быстро нажать на кнопку, транзакции асинхронные
Быстро на кнопку нажимай
Пробовал кучу раз, как бы быстро я не нажимал, переход идет. Но у меня девайс самсунг с20+. Вероятно там отрисовка быстрая. Можно ли как то решить эту проблему?
дисейблить кнопку после первого клика?
Необязательно быстро кликать) два вызова navigate подряд напиши и словишь такое же поведение
Или сделать констстентный стейт тоже вариант
У меня в другом месте такое стоит, все равно летят такие краши
В частном случае, при клике можно смотреть на текущий destination в навконтроллере, и если уже равен тому куда ты хочешь перейти, то ничего не делать
Та я могу и сделать extension с try catch внутри, но странно, что такая реализация нав компонента
Лучше без костылей с try catch: currentDestination?.getAction(direction.actionId)?.run { navController.navigate(direction) }
getAction метод возвращает null если невозможна навигация?
Обсуждают сегодня