Как остановить изменение размера/поднятие активности на клавиатуре, открытой в диалоговом окне?

У меня есть активность, которая должна реагировать на открытие клавиатуры, поэтому в манифесте у нее есть атрибут

 android:windowSoftInputMode="adjustResize"

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

Есть ли красивый способ решить эту проблему? В настоящее время я меняю softInputMode во время выполнения, это работает, но это раздражает.

Также почему, черт возьми, прокрутка прокрутки не работает с AdjustPan?


person Ololoking    schedule 03.09.2018    source источник


Ответы (3)


Попробуйте использовать adjustPan вместо adjustResize.

person SinaMN75    schedule 03.09.2018
comment
Эта строка могла быть комментарием. - person Ümañg ßürmån; 03.09.2018
comment
Я использую это для диалога, и это работает как шарм !!! ‹3 - person Loc Le Xuan; 17.03.2021

Решение:

Во-первых,

удалите android:windowSoftInputMode="adjustResize", даже не изменяйте его во время выполнения.

Во-вторых, используйте <NestedScrollView> и добавьте к нему атрибут с именем:

isScrollContainer="true"

Попробуйте и обновите здесь, если это именно то, что вам нужно.

person Ümañg ßürmån    schedule 03.09.2018

используйте это в своем теге активности в манифесте:

    android:configChanges="orientation|screenSize"
    android:windowSoftInputMode="stateHidden|adjustPan"
person Erselan Khan    schedule 07.09.2018