只要在Android中长按KeyboardView的键,就会出现一个小键盘。它在android:popupCharacters中设置了信息,并且在android:popupKeyboard属性中设置的xml中设置了外观。

有时,在我的应用程序中,键的标签会更改(并因此更改与键相关的popupCharacters),但是弹出窗口与创建时的完全相同。换句话说:如果在创建时PopupCharacters是XX,那么对于Popup,它们将始终是XX,无论角色是否变为YY。

我试图以编程方式更改PopupResId和PopupCharacters

mKeyboardView.Keyboard.Keys[i].PopupCharacters = AA;
mKeyboardView.Keyboard.Keys[i].PopupResId = Resource.Layout.BB;


但是修改不会改变任何东西。关于如何动态更改的任何想法?

谢谢!

最佳答案

因此,万一它对任何人都有用:


函数InvalidateKey(int i)显然不会使弹出窗口无效,因此它保持与问题状态相同。
我通过创建新的Keyboard对象并将其附加到KeyboardView上,每次我想更改弹出窗口来解决此问题。我不确定这是否是最好/最有效的方法,但是它可以工作。

08-03 21:25