我想开发一个替换键盘,但我担心 Android 假设一般键盘“区域”将是位于屏幕底部的单个矩形。
如果我希望我的键盘包含多个不仅位于屏幕底部的形状怎么办?我从一开始就注定了,还是有可能做我想做的事?
在相关说明中,如果我只希望我的键盘在手机处于某个方向时出现,但当手机处于不同方向时,使用普通软键盘怎么办?再次,运气不好还是可能?
干杯!
IME 只是一个窗口。它相对于屏幕底部定位,因此您无法真正控制它。但是你可以在里面画任何你想要的东西,或者不画你想要透明的地方。您可以通过以下方式控制有多少应用程序从您的 IME 上移开:http: //developer.android.com/reference/android/inputmethodservice/InputMethodService.html#onComputeInsets (android.inputmethodservice.InputMethodService.Insets )
Android 不会让窗口一次决定一个事件是由它们处理还是分派到它们后面的窗口;您必须防止事件被整个窗口消耗的唯一控件是 Insets.touchableInsets 常量,它告诉窗口管理器允许给定插入之外的事件通过它背后的内容。
大概你可以在任何你想要的地方创建一个矩形,并使其部分透明。不确定如何将 UI 事件传递给键盘下方的活动。
无论如何,有一个软键盘示例可能会很有帮助。
正如我所看到的,您可以通过两种方式处理 UI 事物。- 当事件“应该通过”时将事件传递给底层活动......由于您的软键盘可能有自己的进程,这可能会有点棘手。- 使您的键盘由多个矩形区域组成,以便 UI 事件自然地通过。我不确定这是否可能。我自己对 Android 开发还是很陌生。