Когда программная клавиатура должна отображать клавишу ввода?

Это не зависит от того, запросило ли приложение действие редактора: обычно действие редактора отображается как замена клавиши ввода, но метод ввода может предлагать оба варианта в качестве альтернативы.

Простой ответ, конечно, «когда можно ввести новую строку». Когда TextView находится в однострочном режиме, невозможно ввести новую строку, даже если на клавиатуре отображается клавиша: как я нашел в этот ответ, Android сам обрабатывает ключ как действие редактора и заменяет пробел нулевой ширины для любых новых строк, добавленных к TextView.

Как метод ввода может определить, будут ли соблюдаться символы новой строки или, в противном случае, уместно ли показывать клавишу ввода (в качестве альтернативы любому указанному действию редактора)?


person Dan Hulme    schedule 25.04.2014    source источник


Ответы (1)


Лучше всего проверить объект EditorInfo, возвращенный с помощью getCurrentInputEditorInfo() и сделайте наилучшее предположение, подходит ли показ клавиши Enter или нет.

person flide    schedule 25.11.2016
comment
Да, я не совсем понимаю, что это за наилучшая догадка. Какую логику я должен использовать, чтобы решить? - person Dan Hulme; 25.11.2016
comment
Насколько я знаю, нет никакого способа узнать, примет ли TextView ввод как символ новой строки, потому что это полностью зависит от приложения, в котором находится TextView, и, честно говоря, я никогда не думал о клавише ввода как просто о символе новой строки. символ новой строки, «клавиша ввода» выполняет свою работу, иногда отправляет сообщения, иногда просто переходит к следующему полю, а иногда просто вводит новую строку. Я не знаю, полезна ли вообще маркировка enter как done или go. - person flide; 26.11.2016