Как создать экранную клавиатуру Android, которая не имеет прямоугольника в нижней части экрана? - PullRequest
5 голосов
/ 03 ноября 2010

Я хочу разработать заменяющую клавиатуру, но боюсь, что в Android предполагается, что общая «область» клавиатуры будет представлять собой одну прямоугольную форму, расположенную в нижней части экрана.

Что, если я хочу, чтобы моя клавиатура состояла из нескольких фигур, которые не просто располагаются внизу экрана? Я обречен с самого начала, или я могу делать то, что хочу?

Что касается связанной заметки, что если я хочу, чтобы моя клавиатура появлялась только тогда, когда телефон находится в определенной ориентации, но когда телефон удерживается в другой ориентации, используется обычная программная клавиатура? Опять не повезло или возможно?

ура!

Ответы [ 2 ]

4 голосов
/ 03 ноября 2010

IME - это просто окно.Он расположен относительно нижней части экрана, поэтому вы не можете это контролировать.Но вы можете рисовать в ней все, что хотите, или не в тех местах, где хотите быть прозрачными.Вы можете контролировать, сколько приложений удаляются от вашего IME, с помощью этого: http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html#onComputeInsets(android.inputmethodservice.InputMethodService.Insets)

Android не позволяет окнам решать по одному, будут ли они обрабатывать события или отправлять их в окно позади них;единственный элемент управления, который вы должны предотвратить, чтобы события не использовались всем вашим окном, - это константы Insets.touchableInsets, которые позволяют оконному менеджеру разрешить событиям за пределами указанных вставок проходить к тому, что находится за ним.

0 голосов
/ 03 ноября 2010

Предположительно, вы можете создать прямоугольник в любом месте и сделать его прозрачным. Не уверен, как передавать события пользовательского интерфейса в активность под клавиатурой.

В любом случае, есть образец Softkeyboard , который, вероятно, будет весьма полезным.

На мой взгляд, есть два способа, которыми вы можете справиться с UI Thing. - Передайте события основной деятельности, когда они «должны пройти» ... Так как ваша программная клавиша может иметь собственный процесс, это может стать немного тернистым. - Создайте клавиатуру из более чем одной прямоугольной области, чтобы события пользовательского интерфейса проходили естественным образом. Я не уверен, что это вообще возможно. Я все еще довольно новичок в разработке под Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...