Фрагмент сдвигается вверх, когда отображается клавиатура

#android #kotlin #android-fragments #android-softkeyboard

Вопрос:

В моем приложении для Android всякий раз , когда пользователь выбирает TextView , появляется клавиатура, но она сдвигает мой фрагмент вверх. Я попробовал следующее в своем onViewCreated , и это не сработало:

this@MainFragment.requireActivity().window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

Как предотвратить смещение фрагмента клавиатуры вверх? Я хочу, чтобы фрагмент был исправлен, и когда TextView он выбран, клавиатура просто находится поверх фрагмента.

Комментарии:

1. Попробуйте завернуть его в ScrollView

Ответ №1:

Я думаю, вам нужно добавить adjustPan флаг в свою активность AndroidManifest . Есть два основных флага, которые являются следующими.

Отрегулируйте размер Главного окна действия всегда изменяется, чтобы освободить место для программной клавиатуры на экране.

Регулировка размера главного окна действия не изменяется, чтобы освободить место для программной клавиатуры. Скорее, содержимое окна автоматически перемещается, так что текущий фокус никогда не заслоняется клавиатурой, и пользователи всегда могут видеть, что они печатают. Как правило, это менее желательно, чем изменение размера, поскольку пользователю может потребоваться закрыть программную клавиатуру, чтобы добраться до затемненных частей окна и взаимодействовать с ними.

Поэтому я предлагаю вам использовать adjustPan то, что вам кажется нужным

 <activity android:windowSoftInputMode="adjustPan"> </activity>
 

Комментарии:

1. adjustPan не сработало, но adjustNothing сработало.