EditText в ListView с помощью windowSoftInputMode adjustPan

У меня есть ListView с EditText в каждой строке. Я установил windowSoftInputMode для adjustPan в манифесте для этого действия, поэтому, когда я нажимаю на EditText макет компоновки так, чтобы он был виден над клавиатурой.

Это срабатывает при первом нажатии на EditText . Но если я нажму кнопку «Назад», чтобы закрыть клавиатуру, то снова коснитесь того же EditText (без нажатия чего-либо еще, так что курсор остается в первом EditText ), клавиатура возвращается, но макет не качается на этот раз. Результатом этого является то, что EditText скрывается за клавиатурой.

Кто-нибудь испытал это поведение / знает, как его решить?

благодаря

Solutions Collecting From Web of "EditText в ListView с помощью windowSoftInputMode adjustPan"

Все еще не уверен, почему это происходит, но у меня есть решение.

Я подклассифицировал EditText и переопределил метод onKeyPreIme(int keyCode, KeyEvent event) следующим образом:

 @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK) { clearFocus(); } return super.onKeyPreIme(keyCode, event); } 

Теперь, когда нажата задняя клавиша, EditText отбрасывает фокус. Затем повторное нажатие на него имеет желаемое поведение.