Мне хотелось бы использовать компонент EditText и все его методы без задействия виртуальной клавиатуры. Другими словами, при клике по полю (его фокусировке) я не хочу чтобы всплывала виртуальная клавиатура. При этом мне нужно чтобы работал курсос, выделени текста, скроллинг и т.д.
До 3ьей версии андроида данная проблема решалась мною переопределением метода TextView#onCheckIsTextEditor() и возращением false. Но начиная с 3ьей версии изменилось поведение TextView, а именно, проверка состояния курсора (его видимости) начала также проверять свойство TextView#onCheckIsTextEditor() (метод TextView#isCursorVisible() начал вызыввать метод TextView#onCheckIsTextEditor()) и как следствие — курсос пропал. Остальное поведение компонента не изменилось.
Быстрое и очень «грязное» решение — поверять stack trace и возвращать разное значение при вызове кода из разных методов (в случае вызова из под TextView#isCursorVisible() возвращать true, иначе — false).
Проблемный код здесь
1. Есть ли другие нормальные (и, желательно, простые) способы решения данной проблемы?
2. Нормальное ли это поведение со стороны разработчиков андроида менять поведение базовых компонентов?