Моя цель состоит в том, чтобы иметь EditText
, который не имеет причудливых функций, просто обработчик выбора текста для более легкого перемещения курсора - поэтому нет контекстных меню или всплывающих окон.
Я отключил внешний вид панели действий функции редактирования текста (копирование/вставка и т.д.) путем использования события обратного вызова ActionMode в соответствии с этим решением.
Средство Среднее Средство выбора Среднего текста (см. изображение ниже) все еще появляется, когда текст существует в поле, и щелчок происходит в тексте. Большой! Я хочу сохранить это поведение. То, что я НЕ хочу, - это меню "PASTE", которое появляется, когда нажата кнопка "Выбор текста".
Я также отключил длинный щелчок ввода для EditText, установив android:longClickable="false"
в стилях XML. Отключение длинного клика предотвращает появление меню "Вставить/Заменить", когда мышь нажата и удерживается (то есть длинное касание), однако при щелчке мышью (одним касанием) в тексте появляется дескриптор выбора текста, и когда щелчок правой кнопкой мыши, затем появляется опция меню "вставить" (при наличии текста в буфере обмена). Это то, что я пытаюсь предотвратить.
Из того, что я вижу из источника, ActionPopupWindow
- это то, что появляется с параметрами PASTE/REPLACE. ActionPopupWindow - это защищенная переменная (mActionPopupWindow) в частном абстрактном классе HandleView в общедоступном классе android.widget.Editor...
Чтобы отключить службу буфера обмена или изменить исходный код Android, существует ли способ предотвратить это? Я попытался определить новый стиль для android:textSelectHandleWindowStyle
и установить android: visibility to
go`, но это не сработало (приложение замерло некоторое время, когда оно в противном случае было бы показано).