Intereting Posts
Недостаточно памяти при распределении байтов (битмап как строка для веб-сервиса с использованием мыла) Убедитесь, что мой код защищен потоком Дооснащение 2 – тело нулевого ответа Лучший способ обновления данных с помощью адаптера RecyclerView Сведения об уничтожении и отдыхе компонентов приложений Android Dagger2: ошибка, когда два компонента имеют одну и ту же сигнатуру инъекционного метода Android-библиотека для чтения или анализа шейп-файла Как преобразовать координаты GPS в местность Как получить масштабированный Bitmap из ImageView Почему PendingIntent не отправляет мою настраиваемую настройку Extras для Intent? Android: всплывающее окно с ошибкой в ​​EditText не сдвигается вниз, когда клавиатура уходит Является ли OpenGL на Android аккумулятором? Как изменить цвет значка панели инструментов Как изменить тело в ответе OkHttp? Как обрабатывать ошибки в пользовательском AsyncTaskLoader?

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

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

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

Изображение здесь

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

Изображение здесь

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

Solutions Collecting From Web of "Отжимать содержимое при нажатии в текстовом редакторе"

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

SOFT_INPUT_ADJUST_PAN

имея в виду:

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

Это будет держать клавиатуру закрытой, и когда она откроется, она активирует вашу активность.

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

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

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

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

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

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

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

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

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

Попробуй это

 android:windowSoftInputMode="adjustResize" 

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

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

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

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

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

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

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

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

 android:windowSoftInputMode="adjustPan" 

Удачи!

Я использую это для моего входа в 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 

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

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

 <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" 

Надежда решит проблему
Это сработало для меня.