簡體   English   中英

如何在自定義 android 鍵盤中實現按鍵預覽彈出窗口

[英]How to implement key preview popup in custom android keyboard

我目前正在開發供個人使用的自定義 andriod 鍵盤: https://github.com/soobakjonmat/Custom-Layout-Keyboard-for-Android

樣本圖像

我的自定義鍵盤示例圖像

我的鍵盤的基本結構基於 Microsoft SwiftKey。

除了找不到實現按鍵預覽彈出窗口的方法外,我幾乎完成了所有工作。

例如(Gboard 和 Microsoft SwiftKey):

Gboard 示例圖片 Microsoft SwiftKey 示例圖像

我查看了有關此實現的不同帖子,但所有帖子都至少有 5 年歷史,並且他們使用的是KeyboardView class,現在已棄用,我沒有用它來創建我的鍵盤。 所以我嘗試自己實現它。

起初我嘗試像 Microsoft SwiftKey 一樣實現它,每次按下它時我都嘗試增加Button的高度,但它也增加了其他Button的高度,因為它們在同一個LinearLayout中並且我已經使用權重來設置它們的高度。

因此,我嘗試像 Gboard 一樣實現它,但我不太清楚如何在用戶按下的鍵上方顯示圖像或文本。 我嘗試使用ImageView來顯示關鍵預覽,但我不確定如何或在布局中的何處添加視圖。

任何幫助或建議將不勝感激。

我自己找到了解決方案。 使用彈出窗口: PopupWindow ://developer.android.com/reference/kotlin/android/widget/PopupWindow

創建一個PopupWindow並將其contentView設置為TextView 然后每當你想顯示它調用showAtLocationupdate方法。

例如:

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)

對於未來的人,如果有人也遇到同樣的問題並想了解更多詳細信息,請查看本文開頭提到的我的 github 存儲庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM