Android中的KeyboardView

时间:2014-06-03 14:45:58

标签: android popup xamarin android-softkeyboard

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

在某些时候,在我的应用程序中,键的Label会发生变化(因此与键相关的popupCharacters会发生变化),但Popup与创建时保持完全相同。换句话说:如果在创建时,PopupCharacters是XX,那么对于Popup,无论caracters是否变为YY,它们将始终为XX。

我尝试用编程方式更改PopupResId和带有

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

但修改并没有改变任何事情。关于如何动态改变它的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

所以,如果它对任何人都有用:

  • 函数InvalidateKey(int i)显然不会使弹出窗口失效,因此它会保持不变,就像问题所述。
  • 我通过创建一个新的Keyboard对象并在每次弹出要更改的弹出窗口时将其附加到KeyboardView来解决了这个问题。我不确定这是否是最好/最有效的方式,但它确实有效。