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

У меня есть активность с 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()); } }); 

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

Solutions Collecting From Web of "Прокрутите экран вверх, когда появится клавиатура"

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

  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); } });