Android Jetpack Navigation: клавиатура приведет к тому, что размер любого фрагмента навигации будет равен 0 - PullRequest
1 голос
/ 24 июня 2019

Моя проблема звучит странно, но я быстро пойду к своей точке.

Я провел рефакторинг проекта, чтобы полностью преобразовать его в Lifecycle + Navigation (например, используя ViewModel и NavController).

На одном из моих графиков навигации, где пользователь регистрируется, есть Fragment, в котором есть традиционный EditText, чтобы пользователь мог ввести желаемый ник.

Проблема: , если пользователь начинает сначала вводить свой псевдоним, предлагая, таким образом, свою программную клавиатуру, а затем любой следующий Fragment, к которому пользователь перешел (используя NavController#navigate), содержимое будет пустым : ничего не появляется.

Чтобы устранить источник проблемы, я провел следующие тесты (с использованием тостов, точек останова и т. Д.):

  1. Проверка того, используются ли методы onCreateView и onAttached при переходе к Fragment ;
  2. Проверка, виден ли раздутый вид целевого фрагмента, путем установки яркого фона (цвет никогда не виден);
  3. Использование onGlobalLayout в целевом представлении с раздутым фрагментом: иногда метод никогда не вызывается, но при его вызове оба значения height и width равны 0 .

Итак, вот оно. Как только раскроется клавиатура, для любого перемещаемого фрагмента высота и ширина вида будут установлены на 0. По крайней мере, любая навигация вызывает вызов onCreateView.

.

Примечание: во фрагменте, который представляет EditText, я использую:

requireActivity (). GetWindow (). SetSoftInputMode ( WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

Но удаление этого кода не имеет значения.

Я использую версию: 2.1.0-alpha05 (последняя на момент публикации). Я также пробовал стабильную версию 2.0.0 , но у меня та же проблема.

РЕДАКТИРОВАТЬ 1

Не берите в голову, кажется, что новая ConstraintLayout 2.0.0 beta 02 является виновником (вызывает много проблем с представлением переработчика) наряду с новым механизмом обратной навигации https://developer.android.com/guide/navigation/navigation-custom-back (начиная с AppCompat 1.1.0-alpha05), вызывающим другие проблемы в моем приложении .

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