Я знаю, что здесь есть много подобных вопросов но я не мог получить ни одно из предоставленных решений, работающих в простом примере приложения.
Проблема возникает, когда первая страница softkeyboard показана. Как только это будет показано, только нажатие editText снова делает его доступным для редактирования.
Пробовал следующее:
android:windowSoftInputMode="adjustPan|adjustResize"
Это не решение каких-либо проблем. Кажется, что эта строка обязательна, чтобы изменить размер активности после появления всплывающей подсказки. К сожалению, это также приводит к тому, что любые EditTexts теряют фокус. Вероятно, это, вероятно, для ListView, получившего фокус после процесса изменения размера. Поэтому я попробовал следующее обходное решение:
listView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
Это всегда вызывает первый видимый EditText, который содержит ListView
для получения фокуса, что нежелательно. Второй EditText во второй строке должен вместо этого получать фокус при нажатии, чего не происходит. Кроме того, если мне в конечном итоге удастся сфокусировать другой EditText другой, а затем первый показан (например, нажав "Next" на softkeyboard
), первый видимый получит фокус после того, как клавиатура будет отклонена, а ListView будет изменен до полного размер снова.
Я попробовал несколько других вещей, например, перехватывать события onFocusChange()
для ListView, зная, какой EditText был нажат его TouchListener
. Задание фокуса для этого некоторого EditText снова не привело ни к какому успеху.
Использование ScrollView
вместо ListView
, как предложено другими пользователями, не является вариантом для соответствующего проекта.