Программная клавиатура изменяет размер фонового изображения
У меня есть макет, как показано ниже:
<ScrollView ...>
<LinearLayout...>
<EditText
..../>
</LinearLayout>
</ScrollView>
Как только фрагмент загружается, мы устанавливаем фокус EditText так, чтобы он отображал Keyboard.
Мы также установили фон:
mParent = inflater.inflate(R.layout.sample_layout, container, false);
mParent.setBackgroundResource(R.drawable.sample_bg);
Проблема заключается в том, что когда клавиатура отображается, фон изменяется или клавиатура перемещает фоновое изображение вверх.
mEdTxt.requestFocus();
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEdTxt, InputMethodManager.SHOW_IMPLICIT);
mEdTxt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
Мы попробовали:
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Я видел много сообщений, связанных с этим, но это не помогло мне.
РЕДАКТИРОВАТЬ: Вопрос не дублирует
Как?
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Приведенный выше код отключит скроллер.
Нам нужна клавиатура, которая должна быть показана, и скроллер, чтобы пользователь мог прокручивать страницу, когда клавиатура отображается.
Я надеюсь, что это ясно.
1 ответ
Похоже, у вас есть в узле деятельности в вашем манифесте:
android:windowSoftInputMode="adjustResize"
Если вы не хотите изменять его размер, удалите его или измените его на другое.
http://developer.android.com/guide/topics/manifest/activity-element.html