[英]How to remove repeatable keys, key preview of the Android custom keyboard
[英]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):
我查看了有關此實現的不同帖子,但所有帖子都至少有 5 年歷史,並且他們使用的是KeyboardView
class,現在已棄用,我沒有用它來創建我的鍵盤。 所以我嘗試自己實現它。
起初我嘗試像 Microsoft SwiftKey 一樣實現它,每次按下它時我都嘗試增加Button
的高度,但它也增加了其他Button
的高度,因為它們在同一個LinearLayout
中並且我已經使用權重來設置它們的高度。
因此,我嘗試像 Gboard 一樣實現它,但我不太清楚如何在用戶按下的鍵上方顯示圖像或文本。 我嘗試使用ImageView
來顯示關鍵預覽,但我不確定如何或在布局中的何處添加視圖。
任何幫助或建議將不勝感激。
我自己找到了解決方案。 使用彈出窗口: PopupWindow
://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)
對於未來的人,如果有人也遇到同樣的問題並想了解更多詳細信息,請查看本文開頭提到的我的 github 存儲庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.