在Android中禁用自定义键盘上的一个键

mjo*_*eer 11 keyboard android key

我的Android应用程序中有自定义键盘.它的布局在xml中描述如下

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"">
 <Row>
     <Key android:keyLabel="F1" android:keyOutputText="F1"/>
     <Key android:keyLabel="F2" android:keyOutputText="F2"/>
     <Key android:keyLabel="F3" android:keyOutputText="F3"/>
...
Run Code Online (Sandbox Code Playgroud)

所以,我有兴趣如何禁用,例如'f1'键〜让它变灰和不可触碰.这里有一些类似的问题,但都是关于默认的soft-KB.

我知道我可以迭代这样的键

for (Keyboard.Key key : myKeyboard.getKeys())
Run Code Online (Sandbox Code Playgroud)

但它看起来像Keyboard.Key类的对象对于键的外观的任何更改都是无用的.

UPD:我没找到解决方案.我手动实现键盘 - 大相对布局,常用按钮和自定义按钮,一切都很好.顺便说一句 - 自定义键盘至少更美观.只需从droid 4+复制资源 - 您就可以在每个平台上获得漂亮的现代透明按钮和透明布局.

小智 -3

如果 Key 是一个 Button,那么就很简单:

key.setEnabled(false);
Run Code Online (Sandbox Code Playgroud)

否则,只需使其不可点击:

key.setClickable(false);
Run Code Online (Sandbox Code Playgroud)

...并更改其外观(背景颜色、文本颜色等)。最简单的方法是:

key.setBackgroundColor("0xFFAAAAAA");
Run Code Online (Sandbox Code Playgroud)