Сводка об ошибках
После того, как EditText
перерабатывается в RecyclerView
, его поведение при длительном нажатии, которое используется для выделения всего текста и отображения контекстного меню «Вырезать / Копировать / Вставить», больше не работает какожидается.
Эта проблема возникает с Android 15 до Android 28.
Я пробовал EditText
и android.support.v7.widget.AppCompatEditText
.Обе проблемы приводят к одной и той же проблеме.
Я могу подтвердить, что эта проблема возникает после переработки View
.Если применить setIsRecyclable(false);
в ViewHolder
, проблема не возникнет.
Шаги для воспроизведения
- Длительное нажатие на 1-е
EditText
.Мы можем подтвердить, что будет выбран весь текст в EditText
.Появится контекстное меню. - Прокрутка
RecyclerView
до конца списка. - Прокрутка
RecyclerView
до начала списка. - Длительное нажатие на 1-й
EditText
.Весь текст в EditText
НЕ будет выделен.Контекстное меню НЕ будет отображаться.
Ожидаемое поведение
После того, как представление было переработано, мы ожидаем, что шаг 4 будет по-прежнему вести себя точно так же, как шаг 1.
Исходный код
https://github.com/yccheok/edittext_bug_in_android9
Система отслеживания ошибок
https://issuetracker.google.com/issues/125425940
Мне было интересно,кто-нибудь сталкивался с такой же проблемой, как я?У вас есть хороший способ обойти это?Обратите внимание, что мой RecyclerView
предмет может быть переработан.Следовательно, использование setIsRecyclable(false);
не вариант для меня.