Я работаю над приложением Android с NavController
и BottomNavigationView
и фрагментами для каждой вкладки. На первых нескольких вкладках (фрагментах) пользователь может ввести несколько значений, а затем на последней самой правой вкладке отображается результат на основе этих значений.
Базовые значения обновляются в onFocusChange()
из TextViews и результат вычисления последнего фрагмента обновляются в onResume()
этого фрагмента.
Все это работает нормально, за исключением одной ситуации; Когда пользователь изменяет значение, затем оставляет курсор в этом TextView и затем нажимает на BottomNavigationView
, чтобы переключиться на последний фрагмент, теперь onFocusChange
вызывается только ПОСЛЕ вызова onResume()
на новом фрагменте. Я сделал иллюстрацию ниже:
Другими словами, onResume()
вызывается до onFocusChage()
, поэтому отображение вычислений обновляется перед значение обновляется, поэтому похоже, что расчет не обновляется. Когда вы снова переключаете вкладки, например, с (3) на (2), а затем снова на (3), тогда это действительно показывает правильное новое вычисленное значение.
Я ломал голову над этим в течение нескольких часов, потому что это довольно уродливое GUI поведение.
Есть ли способ исправить это? И если да, то как?