如何在自定义Android键盘中实现按键预览弹出

问题描述 投票:0回答:1

我目前正在开发定制的andriod键盘

示例图片:

我的键盘的基本结构是基于Microsoft SwiftKey。

除了找不到实现关键预览弹出窗口的方法之外,我几乎已经完成了所有事情。

例如(Gboard 和 Microsoft SwiftKey ):

我看过有关此实现的不同帖子,但它们都至少有 5 岁了,而且他们使用的是

KeyboardView
类,该类现已弃用,我还没有使用它来创建我的键盘。所以我尝试自己实现它。

起初我尝试像 Microsoft SwiftKey 一样实现它,并且每次按下它时我都尝试增加

Button
的高度,但它也增加了其他
Button
的高度,因为它们位于相同的
LinearLayout
并且我有使用体重来设定他们的高度。

因此,我尝试像 Gboard 一样实现它,但我不太清楚如何在用户按下的按键上方显示图像或文本。我尝试使用

ImageView
显示关键预览,但我不确定如何或在布局中添加视图。

任何帮助或建议将不胜感激。

android kotlin android-softkeyboard custom-keyboard
1个回答
1
投票

我自己找到了解决方案。 使用

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)
© www.soinside.com 2019 - 2024. All rights reserved.