【问题标题】:How to program a split screen keyboard?如何编写分屏键盘?
【发布时间】:2016-12-29 12:18:11
【问题描述】:

我正在开发一个 IME 应用程序,但我无法理解 InputMethodService 结构。我的主要服务类扩展了 InputMethodService 并在 onCreateInputView 上返回我的自定义线性视图。

我不明白的部分是 InputMethodService 将视图呈现在屏幕的下部,整个宽度。这是我知识不足的部分。我研究过Android Developer,但至今无济于事。

我的问题是如何渲染分屏键盘?

我看到了两种可能性。我可以操作 InputMethodService 在屏幕底部渲染的底层窗口,设置一些值,或者我的类应该扩展 AbstractInputMethodService 并渲染它自己的 UI。后者我必须了解更多。

【问题讨论】:

    标签: android


    【解决方案1】:

    您在 onCreateInputView 中返回一个自定义视图。在自定义视图中,您有 3 个视图 - 左侧、右侧和中间。在中间,使其背景透明。使根视图的背景也透明。它应该显示出来。

    然后转到 onComputeInsets。这控制了您的视图在屏幕上的位置。告诉它 contentInset 是 -view.getHeight()。这将导致它在显示键盘时根本不会向上移动后台应用程序。

    如果您想让触摸通过主应用程序的触摸之间的空间可触摸,您还需要使用触摸插入。

    【讨论】:

    • 谢谢。我将此标记为回答我的问题,因为它为我指明了正确的方向。我需要时间来学习/实施解决方案。
    • 祝你好运。我已经处理过几次 onComputeInsets(我曾经甚至制作了一个完全可移动的平板电脑键盘,您可以将任何键放在屏幕上的任何位置)。它很痛苦,并且没有很好的记录。但是一旦你得到它,它就会变得非常强大。
    猜你喜欢
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 2019-07-10
    • 2019-01-10
    相关资源
    最近更新 更多