Android: смещение клавиатуры приводит к прокрутке вниз
Я использую ViewPager для отображения двух фрагментов в виде страниц в моем приложении. На странице 1 есть поля EditText. Я хочу программно отклонить клавиатуру, связанную с любым из этих текстовых полей (на странице 1), когда я прокручиваю до страницы 2 (или выбираю Tab2). Я написал следующий код для этого:
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
View currentView = getCurrentFocus();
if (currentView != null) {
InputMethodManager imm = (InputMethodManager) currentView.getContext().getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(currentView.getWindowToken(), 0);
}
} });
Если клавиатура видна в то время как на странице 1, нажатие на вторую вкладку приведет к тому, что страница 2 отобразится в состоянии "прокрутка вниз". Это заставляет Панель инструментов подниматься вверх по строке состояния, делая заголовок Панели инструментов почти невидимым для чтения. Пожалуйста, проверьте скриншоты ниже (1-е изображение - страница 1, а второе - страница 2):
Как это исправить?
1 ответ
Попробуйте это работает
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
switch ((actionId))
{
case EditorInfo.IME_NULL:break;
}
return false;
}
});
и позвонить editText.onEditorAction(EditorInfo.IME_NULL);