在Android上禁用工具栏图标时,是否有视觉反馈?
我通过执行以下操作在应用程序的操作栏中添加了一些图标:
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
item.setIcon(drawable);
有时候,我需要禁用某个项目,所以我打电话给
item.setEnabled(false);
这确实禁用了该项目,即它不再对触摸做出反应,但是禁用它并不会更改图标图像。在台式机系统上,我习惯于禁用已变灰的项目或类似的东西,以便用户可以清楚地看到该项目已被禁用,但这在调用Toolbar
的Android setEnabled(false)
小部件中似乎不会发生。图标图像保持不变。它只是不再对触摸做出反应。
当然,我可以在可绘制对象上手动添加灰色滤镜以使其显示为灰色,但是我不确定这是否可行。
这就是为什么我想问:在Android上禁用工具栏图标时,它们的预期行为是不会改变它们的外观吗?
答案 0 :(得分:1)
您可以为两种状态(启用/禁用)创建图标,并将它们添加到选择器中:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_enabled" android:state_enabled="true"/>
<item android:drawable="@drawable/icon_disabled" android:state_enabled="false"/></selector>
然后用选择器替换可绘制对象,Android应该处理其余部分。
编辑:我认为Android中没有任何元素可以通过启用/禁用它来自动更改其外观。每当我遇到不总是可点击的按钮/图标时,我就一直在使用上述解决方案。