Прокрутите экран вверх, когда появится клавиатура

У меня есть активность с editText посередине. Когда я нажимаю на editText, появляется клавиатура, и экран перемещается так, что editText находится чуть выше клавиатуры, охватывая другие вещи, которые находятся ниже.

Я не хочу изменять размер или добавлять дополнение к макету. Мне просто нужно, чтобы экран прокручивал вверху пространство, которое мне нужно, чтобы увидеть и другие вещи ниже. Другими словами, я хочу выбрать позицию editText, когда появится клавиатура. Этого было бы достаточно, если экран прокручивается полностью, показывая мне нижнюю часть макета.

Я попытался поместить макет в scrollView, добавив этот код в editText

editText.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //make the view scroll down to the bottom scrollView.scrollTo(0, scrollView.getBottom()); } }); 

Но это не сработает. У кого-нибудь есть идея? Заранее спасибо!

Однажды у меня была аналогичная проблема, я решил использовать:

  android:windowSoftInputMode="adjustResize" 

В манифесте.

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

Если вы используете LinearLayout, оберните его в RelativeLayout и подключите LinearLayout к parentBottom

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

Надеюсь, эта помощь.

Use android: windowSoftInputMode = "adjustPan"

"adjustResize"

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

"adjustPan"

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

Например, запустите файл манифеста:

  <activity android:windowSoftInputMode="adjustPan" android:name=".MainActivity"></activity> 

Поздний ответ. Но, конечно, это помогает кому угодно.

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

 android:windowSoftInputMode="stateVisible|adjustResize" 

В androidmanifest для деятельности

У меня была эта проблема, я решил по этому коду:

 myEdittext.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { myscrollview.postDelayed(new Runnable() { @Override public void run() { View lastChild = myscrollview.getChildAt(myscrollview.getChildCount() - 1); int bottom = lastChild.getBottom() + myscrollview.getPaddingBottom(); int sy = myscrollview.getScrollY(); int sh = myscrollview.getHeight(); int delta = bottom - (sy + sh); myscrollview.smoothScrollBy(0, delta); } }, 200); } }); 
Intereting Posts
Добавление представлений в группу просмотра Android Programmatically Как создать меню мини-ящика в Android? ViewRootImpl.setPausedForTransition (boolean) NullPointerException в ActivityTransitionCoordinator при переходе на другую активность, вызванную слишком рано Имя приложения с надстрочным текстовым андроидом Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени 'Widget.AppCompat.Light.Base.DropDownItem.Spinner' У меня возникла ошибка при построении градиента в студии Android Java.lang.noclassdeffounderror: org.ksoap2.serialization.SoapObject Как остановить HttpURLConnection.getInputStream ()? У Android есть цифровая клавиатура? Соединение Bluetooth RFCOMM не может быть установлено последовательно на Android 4.2 Решение для Android-приложений Одновременное подключение Android к двум беспроводным сетям Как проверить, видна ли активность? OnResume недостаточно Отслеживание мобильных объявлений Facebook с помощью Google Analytics Создание Android-вида с определенным стилем программно