Подтвердить что ты не робот

Отжимать содержимое при нажатии в текстовом редакторе

Я искал всюду для решения моей проблемы, но не могу найти ответ. Вот проблема.

У меня есть макет, который выглядит как

Image is here

Теперь, когда я нажимаю текст редактирования (панель поиска), я хочу, чтобы следующее произошло

Image is here

Мягкая клавиатура в основном должна подтолкнуть содержимое всех экранов, чтобы строка поиска находилась в верхней части экрана, а ее список - под ней, чтобы при поиске содержимого отображались результаты. Я попытался установить android:windowSoftInputMode="adjustPan" в Activity в манифесте, но это не сработало. Я установил вид прокрутки в качестве основного контейнера в основном макете, который содержит фрагменты, но это также не сработало. Я попытался добавить текст редактирования (панель поиска) в виде заголовка в список, но это также не сработало. Каждый раз клавиатура подталкивала текст редактирования, но закрывала вид списка. Есть ли способ сделать эту работу?

4b9b3361

Ответ 1

На самом деле, если вы хотите, чтобы весь макет был включен, вы должны использовать:

SOFT_INPUT_ADJUST_PAN

значение:

getActivity().getWindow().setSoftInputMode(
                WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

это закроет клавиатуру, и когда она откроется, она полностью активирует вашу активность.

Ответ 2

Это можно использовать в классе фрагментов для перемещения Редактировать текст вверх и прокрутка до конца.

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

Это будет работать, если ваша тема с фрагментацией не включена в FullScreen.

Надеюсь, это поможет!

Ответ 3

Это сработало для меня.

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

Ответ 4

Я столкнулся с аналогичной проблемой, решение было простым.

Если тема в действии задана как полноэкранный @android:style/Theme.Holo.NoActionBar.FullScreen, клавиатура не нажимала содержимое вверх.

После того, как я изменил действие на @android:style/Theme.Holo.NoActionBar, клавиатура теперь выводит содержимое активности вверх.

Ответ 5

Попробуйте это

android:windowSoftInputMode="adjustResize"

Работаю для меня.

Ответ 6

Попробуйте android:windowSoftInputMode="adjustResize" в вашем файле манифеста.

Возможно, вам понадобится android:windowSoftInputMode="adjustResize|adjustPan"... У меня нет ничего сравнимого с вашей установкой, чтобы проверить...

Ваша проблема заключается в этом (из документов для adjustPan, мой удар):

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

Учитывая, что ваш список закрыт, потому что EditText сверху сосредоточен. Единственное, что я могу сейчас подумать, это переместить EditText, чтобы он был ниже списка. Затем, когда вы нажимаете вверх, ваш список должен оставаться видимым над EditText.

Ответ 7

Я не мог найти решение для автоматического изменения макета, поэтому мне пришлось его взломать. Я использовал код, который я нашел здесь в своем основном действии, чтобы обнаружить, когда клавиатура открыта. Я просто добавил код, чтобы вызвать метод, который скрывает мои первые два фрагмента при открытии клавиатуры. Это не то, что я хотел сделать, но он работает.

Ответ 8

Это сработало для меня, для фрагмента, просто объявите его в манифесте с активностью:

android:windowSoftInputMode="adjustPan"

Удачи!

Ответ 9

Я использую это для моего EditText логина:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

Некоторые примечания об этом методе:

this ссылается на контекст, поскольку getActivity() не всегда предпочтительнее

.SOFT_INPUT_STATE_HIDDEN  //for default hidden state when activity loads

.SOFT_INPUT_STATE_VISIBLE //for auto open keyboard when activity loads 

Работает каждый раз!

Ответ 10

Если кто-то еще сталкивается с этой проблемой:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:id="@+id/view"
    **android:fitsSystemWindows="true"**
    android:layout_height="match_parent">

добавить в свой макет:

android:fitsSystemWindows="true"

Надеюсь, это решит вашу проблему - это сработало для меня.