我目前正在开发定制的andriod键盘
示例图片:
我的键盘的基本结构是基于Microsoft SwiftKey。
除了找不到实现关键预览弹出窗口的方法之外,我几乎已经完成了所有事情。
例如(Gboard 和 Microsoft SwiftKey ):
我看过有关此实现的不同帖子,但它们都至少有 5 岁了,而且他们使用的是
KeyboardView
类,该类现已弃用,我还没有使用它来创建我的键盘。所以我尝试自己实现它。
起初我尝试像 Microsoft SwiftKey 一样实现它,并且每次按下它时我都尝试增加
Button
的高度,但它也增加了其他 Button
的高度,因为它们位于相同的 LinearLayout
并且我有使用体重来设定他们的高度。
因此,我尝试像 Gboard 一样实现它,但我不太清楚如何在用户按下的按键上方显示图像或文本。我尝试使用
ImageView
显示关键预览,但我不确定如何或在布局中添加视图。
任何帮助或建议将不胜感激。
我自己找到了解决方案。 使用
PopupWindow
:https://developer.android.com/reference/kotlin/android/widget/PopupWindow
创建一个
PopupWindow
并将其 contentView
设置为 TextView
。然后每当你想显示它时调用 showAtLocation
和 update
方法。
例如:
val btn = Button(baseContext)
val popup = PopupWindow()
popup.contentView = TextView(baseContext)
val loc = IntArray(2)
btn.getLocationInWindow(loc)
popup.showAtLocation(btn, Gravity.NO_GRAVITY, 0, 0)
popup.update(loc[0], loc[1]-128, 128, 128, false)