Это может помочь, не пробовал сам, попробуйте добавить приведенный ниже код к вашему тегу activity
в вашем манифесте
Изменить - добавлено stateHidden
для достижения того, что вы ищете,кнопка будет внизу, а элементы внутри прокрутки можно прокручивать.
android:windowSoftInputMode="adjustPan|stateHidden"
Из Документация Android - adjustPan
- Главное окно действия не изменено, чтобы освободить место для экранной клавиатуры.Скорее, содержимое окна автоматически панорамируется, так что текущий фокус никогда не скрывается клавиатурой, и пользователи всегда могут видеть, что они печатают.Как правило, это менее желательно, чем изменение размера, поскольку пользователю может потребоваться закрыть экранную клавиатуру, чтобы получить доступ к скрытым частям окна и взаимодействовать с ними.
Редактировать 2 - Код для расчета высоты клавиатуры
myLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
parent.getWindowVisibleDisplayFrame(r);
int screenHeight = parent.getRootView().getHeight();
int heightDifference = screenHeight - (r.bottom - r.top);
Log.d("Keyboard Size", "Size: " + heightDifference);
}
});
Добавьте это heightDifference
, создав представление программно и установив его высоту.
Редактирование 3 -
Используйте это, чтобы скрыть клавиатуру
public static void hideKeyboardFrom(Context context, View view) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
Дайте мне знать, если это работает.