Обработка потери фокуса EditText внутри RecyclerView во время прокрутки – как эмулировать поведение iOS?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Обработка потери фокуса EditText внутри RecyclerView во время прокрутки – как эмулировать поведение iOS?

Сообщение Anonymous »

Я столкнулся с крайним случаем с EditText внутри RecyclerView и задаюсь вопросом, нашел ли кто-нибудь обходной путь.
Проблема: Мы отслеживаем позиции курсора в адаптере, поэтому прокрутка вверх и вниз работает нормально при восстановлении состояния. Однако, если пользователь оставляет клавиатуру открытой и прокручивает выделенный EditText за пределами экрана:
  • RecyclerView перезапускает/отсоединяет представление.
  • Система фокусировки Android впадает в панику и переключает фокус на следующее доступное для фокуса представление, найденное в макете (обычно EditText вне list).
  • Любой последующий ввод приводит к неправильному представлению.
Я пробовал Holder.setIsRecyclable(false), но это не предотвращает потерю фокуса, когда представление физически покидает область просмотра.
Демонстрационное видео для Android: https://www.youtube.com/shorts/jA7lxVpI38Q
Сравнение: на iOS (

Код: Выделить всё

UICollectionView
), система, кажется, справляется с этим элегантно. Он не отбрасывает строку, если у нее есть фокус, или, по крайней мере, поддерживает входное соединение, чтобы клавиатура не начала печатать где-либо еще.
Демонстрационное видео для iOS: https://www.youtube.com/shorts/TGhEhpMtwnM
Кто-нибудь успешно реализовал способ сохранять «виртуальный» фокус на элементе RecyclerView даже при его переработке?

Подробнее здесь: https://stackoverflow.com/questions/798 ... to-emulate
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»