【发布时间】:2012-10-03 06:11:41
【问题描述】:
我的 Android 应用中有自定义 keyboard。 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"/>
...
所以,我很想知道如何禁用,例如“f1”键~让它变灰且不可触摸。 这里有一些类似的问题,但都是关于默认软知识库的。
我知道我可以像这样遍历键
for (Keyboard.Key key : myKeyboard.getKeys())
但看起来Keyboard.Key 类的对象对于键外观的任何更改都是无用的。
UPD:我没有找到解决方案。我手动实现了键盘——大的相对布局、常用按钮和自定义按钮,一切都很好。顺便说一句 - 自定义键盘至少更漂亮。只需从 droid 4+ 复制资源 - 您将在每个平台上获得漂亮的现代透明按钮和透明布局。
【问题讨论】:
-
@thelawnmowerman 您是尝试根据其他条件动态禁用密钥还是一直禁用它?
-
一直以来!它应该更容易:-)
-
@thelawnmowerman 我不确定这是否可行,但是如何编辑 XML 以添加
keyIcon(并将其设置为明确禁用按钮的图像)并修改keyOutputText是空字符串? -
感谢您的想法,但它不起作用,因为 keyIcon 属性仅更改按钮的“表面”图标,而不是按钮本身。按钮的边框保持不变,触摸效果仍然有效:-(另一方面,我可以为所有按钮指定一个自定义可绘制对象,但这没有用,我需要大部分按钮只有一些残疾人......
-
@thelawnmowerman 那么我认为您唯一的选择(缺少完整的自定义键盘)是完全删除按钮(如果您的布局允许的话)。