Что происходит с раскладкой, когда отображается программная клавиатура? - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть пользовательское представление, представляющее собой горизонтальный LinearLayout с жестко заданными шириной и высотой и связкой EditTexts с одинаково распределенной шириной (через layout_weight) и высотой MATCH_PARENT.

Тогда у меня также есть пара элементы управления, которые я могу использовать, чтобы добавить или удалить EditTexts к нему. Это приводит к тому, что размер представлений в LinearLayout корректно адаптируется в соответствии с layout_weight. Тем не менее, они установлены в Gravity.CENTER и, хотя исходная позиция текста правильная, добавление или удаление EditTexts не перемещает его, чтобы разместить его правильно (как это и должно быть, так как ширина представлений изменяется в зависимости от количества просмотры изменений). Однако я заметил, что другие операции, такие как изменение ширины LinearLayout, изменение размера текста EditTexts или показ программной клавиатуры, исправляют положение текста немедленно.

Я пытался поиграть с реакцией к моменту количества дочерних элементов, изменяющихся с различными комбинациями requestLayout (), forceLayout () и invalidate () в LinearLayout, а также в его дочерних элементах, а также переустанавливая параметры макета, а также изменяя размер текста, и ни с одним из них не попал.

...