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

Позиционирование EditText над клавиатурой

У меня есть EditText похожий на это (с "нижней гравитацией"):

enter image description here

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

В конце было бы хорошо, если бы это выглядело так:

enter image description here

Мой код:

// LINEAR LAYOUT
LinearLayout layout = new LinearLayout(getApplicationContext());
layout.setOrientation(LinearLayout.VERTICAL);
setContentView(layout);
// TEXTVIEW
layout.addView(tv);
// EDITTEXT
et.setGravity(Gravity.BOTTOM);
et.setInputType(InputType.TYPE_CLASS_TEXT);
et.setImeOptions(EditorInfo.IME_ACTION_SEND);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
                        params.gravity = Gravity.BOTTOM;
                        et.setLayoutParams(params); // SOMETHING LIKE ONTOUCH -> MOVE UPWARDS
                        layout.addView(et);
4b9b3361

Ответ 1

В вашем файле манифеста добавьте следующий код для этого конкретного действия

<activity android:windowSoftInputMode="adjustPan">

Проверьте этот документ для получения дополнительной информации.

Ответ 2

использование

android:windowSoftInputMode="stateVisible|adjustResize" 

в вашем файле манифеста. См. Сайт разработчика для справки

Ответ 3

Иногда бывает, что установка активности в манифесте

android:windowSoftInputMode="stateVisible|adjustResize" 
android:windowSoftInputMode="adjustPan" 

не работает с прокруткой, содержащей EditText.

После исследования я разобрался что для работы в некоторых случаях необходимо установить родительский макет android:fitsSystemWindows="true". Тогда нативная функциональность прокрутки EditText над полосой прокрутки работает как шарм.