Переключатель AutocompleteTextView to EditText вызывает некоторые ошибки пользовательского интерфейса - PullRequest
0 голосов
/ 25 октября 2019

Я хочу переключаться между AutocompleteTextView и EditText, нажимая «Далее» на клавиатуре. Проблема в том, что если я запрашиваю фокус на EditText в onEditorActionListener, я хочу показать клавиатуру, так как EditText сфокусирован. Но клавиатура выскочит на 400 мс, а затем закроет ее. Клавиатура взаимодействует с AutocompleteTextView's последовательностью закрытия пользовательского интерфейса, заставляя эту новую клавиатуру скрываться. У меня проблемы с элементами пользовательского интерфейса в Android довольно долгое время. Я должен был установить задержку на 300 мс для каждого EditText, чтобы сделать изменение пользовательского интерфейса, потому что предыдущий отменяет его.

Скрытие клавиатуры занимает от 80 до 250 мс, поэтому я должен отложить showKeyboard() функцию через 300 мс послеЯ просил сосредоточиться с другого взгляда. Также AutocompleteTextView, вероятно, не только скрывает клавиатуру, но и пытается скрыть выпадающее меню. Что может занять до 1000 - 1400 мс задержки, чтобы отобразить клавиатуру во втором режиме просмотра. 1800 мс иногда все еще недостаточно, чтобы дождаться окончания всех анимаций пользовательского интерфейса при предыдущем просмотре.

Как решить эту проблему?

Пример кода:

autocompleteTv?.onEditorAction { 
    clearFocus()
    nextEditText?.requestFocus()
    app.hideKeyboard(this)
}

nextEditText?.onFocusAcquired {
     //waiting 100ms to clear focus, 250ms to hide keyboard, ??ms to hide dropdown to do another action on UI Thread
     post(delay = 1800){ app.showKeyboard() }
}
...