【问题标题】:How to show custom input area with InputMethodService如何使用 InputMethodService 显示自定义输入区域
【发布时间】:2019-03-03 05:00:26
【问题描述】:

我正在开发基于使用InputMethodService 的键盘应用程序。其中一项任务是有可能用自定义区域覆盖输入区域,以便在输入区域的左侧/右侧显示其他图标,为某些文本部分使用不同的颜色等。
解决方法之一是使用“在其他应用上绘制”的可能性,但它需要 SYSTEM_ALERT_WINDOW 权限。

InputMethodService 有没有其他方法可以用一些自定义视图覆盖输入区域?

【问题讨论】:

  • 如果我理解正确,您要做的是为您的键盘创建一个自定义视图,而不仅仅是“字母键”,对吗?
  • @flide 是的,它背后的想法是显示一个输入区域,该区域具有额外的格式化可能性和功能,作为键盘的一部分。用户将能够显示/隐藏该自定义输入区域,在其隐藏键入的文本时,将使用InputConnection 将其提交到原始输入区域。一次显示两个输入区域可能会使用户感到困惑,因此我想在用户启用该自定义输入区域时用自定义输入区域覆盖原始输入区域。

标签: android ime


【解决方案1】:

好的,首先:我认为 IME 不可能覆盖输入区域,因为每次增加 ime 的大小时,包含输入区域的应用程序的大小都会按顺序缩小将其保留在屏幕上。

但我认为你想要达到的目标是可能的。我相信提供您想要的功能的最佳方式是“IME Fullscreen Mode”。一旦您决定用户需要更多空间来使用或 IME 需要做的不仅仅是对用户输入做出反应,启动全屏模式并提供所有附加图标来满足您的需求。走这条路的唯一缺点是,您不仅会隐藏“原始”输入区域,还会在编辑期间隐藏包含该输入区域的整个应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2014-11-03
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多