Как показать пользовательскую область ввода с InputMethodService
Я занимаюсь разработкой приложения для клавиатуры на основе использования InputMethodService. Одна из задач состоит в том, чтобы иметь возможность наложения области ввода на собственную, чтобы отображать дополнительные значки слева / справа от области ввода, использовать разные цвета для некоторых текстовых частей и т. Д.
Одним из обходных путей для этого является использование возможности "Рисовать поверх других приложений", но для этого требуется разрешение SYSTEM_ALERT_WINDOW.
Есть ли другой способ для InputMethodService наложить область ввода с каким-либо настраиваемым представлением?
1 ответ
Итак, во-первых: я не думаю, что IME может наложить область ввода, потому что каждый раз, когда вы увеличиваете размер своего имени, размер приложения, содержащего область ввода, будет сокращаться, чтобы сохранить его. на экране.
Но я думаю, что вы пытаетесь достичь возможно. Я считаю, что лучший способ предоставить нужную вам функцию - это полноэкранный режим IME. Как только вы решили, что пользователю нужно больше места для работы или IME нужно сделать больше, чем просто реагировать на ввод пользователя, запустить полноэкранный режим и предоставить все дополнительные значки для вашего сердца. Единственным недостатком этого маршрута будет то, что вы будете не только скрывать "исходную" область ввода, но также и все приложение, которое содержало эту область ввода на время редактирования.