gpt4 book ai didi

android - 为替代键创建自定义弹出键盘

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:50 25 4
gpt4 key购买 nike

我正在尝试为 android 中的替代键创建自定义弹出键盘。通过使用默认键盘,我唯一能做的就是为流行键盘提供自定义布局。

我还需要自定义行为(就像 Gboard 中的那样),例如,

(1) 当一个按钮被长按时,默认情况下它应该突出显示一个特定的键

(2) 移动手指可以高亮和选中按键(长按按键的同时移动手指)

这些是我引用的链接:

Building a custom android keyboard

Creating a SoftKeyboard with Multiple/Alternate characters per key

How do you disable the SoftKeyboard key preview window?

这是 Gboard 中的弹出式键盘 enter image description here

如有任何建议/帮助,我们将不胜感激。

谢谢。

最佳答案

据我所知,您已经查看了这篇文章:
https://www.blackcj.com/blog/2016/03/30/building-a-custom-android-keyboard

它解释了如何为弹出键盘添加自定义布局。
它允许的唯一自定义是更改按键背景和文本颜色。

此外,您可以使用 KeyboardView 子类,然后覆盖其方法来实现您的目标,例如 onTouchEvent() 来捕获运动事件或 onDraw() 重绘键盘区域:

<org.home.CustomPopupKeyboard
android:id="@android:id/keyboardView"
...
/>

此外,检查黑客的键盘来源:
https://github.com/klausw/hackerskeyboard

似乎,它在 layout/keyboard_popup.xml 中使用 LatinKeyboardBaseView extends View 类作为弹出键盘。


编辑:

根据 Hacker's Keyboard 代码,我发现在释放键时关闭弹出窗口的唯一方法是创建您自己的 KeyboardView 类,它扩展了 直接查看,然后改变它的onTouchEvent()

Android 的原生 KeyboardView 类有 PopupWindow mPopupKeyboard 属性,它是 private 所以你不能继承它并调用 mPopupKeyboard。 dismiss() 隐藏弹出窗口。

从释放一个键到弹出窗口关闭的链是:

  • LatinKeyboardBaseView::onTouchEvent() > 案例 MotionEvent.ACTION_UP: onUpEvent() > tracker.onUpEvent()
  • PointerTracker::onUpEvent() > detectAndSendKey() > listener.onCancel()
  • LatinKeyboardBaseView::onCancel()(OnKeyboardActionListener 接口(interface)的实现)> dismissPopupKeyboard() > mMiniKeyboardPopup.dismiss()

关于android - 为替代键创建自定义弹出键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46272190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com