BottomNavigationView, onFocusChange TextView для предыдущего фрагмента вызывается только после onResume для нового фрагмента - PullRequest
0 голосов
/ 27 марта 2020

Я работаю над приложением Android с NavController и BottomNavigationView и фрагментами для каждой вкладки. На первых нескольких вкладках (фрагментах) пользователь может ввести несколько значений, а затем на последней самой правой вкладке отображается результат на основе этих значений.

Базовые значения обновляются в onFocusChange() из TextViews и результат вычисления последнего фрагмента обновляются в onResume() этого фрагмента.

Все это работает нормально, за исключением одной ситуации; Когда пользователь изменяет значение, затем оставляет курсор в этом TextView и затем нажимает на BottomNavigationView, чтобы переключиться на последний фрагмент, теперь onFocusChange вызывается только ПОСЛЕ вызова onResume() на новом фрагменте. Я сделал иллюстрацию ниже:

enter image description here

Другими словами, onResume() вызывается до onFocusChage(), поэтому отображение вычислений обновляется перед значение обновляется, поэтому похоже, что расчет не обновляется. Когда вы снова переключаете вкладки, например, с (3) на (2), а затем снова на (3), тогда это действительно показывает правильное новое вычисленное значение.

Я ломал голову над этим в течение нескольких часов, потому что это довольно уродливое GUI поведение.
Есть ли способ исправить это? И если да, то как?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...