在 Android 上禁用工具栏项时的视觉反馈
Visual feedback when disabling toolbar item on Android
在 Android 上禁用工具栏图标时是否有任何视觉反馈?
我通过以下操作向应用的操作栏添加了一些图标:
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
item.setIcon(drawable);
有时,我需要禁用一个项目,所以我调用:
item.setEnabled(false);
这确实禁用了该项目,即它不再对触摸做出反应,但禁用它不会更改图标图像。在桌面系统上,我习惯于将项目禁用为灰色或其他方式,以便用户可以清楚地看到该项目已禁用,但是 Android 的 Toolbar
小部件似乎不会发生这种情况呼叫 setEnabled(false)
。图标图像保持不变。它只是不再对触摸做出反应。
当然,我可以在可绘制对象上手动添加一个灰色滤镜,使其显示为灰色,但我不确定这是否可行。
这就是我想问的原因:在 Android 上禁用工具栏图标时,工具栏图标不会改变它们的外观是预期的行为吗?
您可以为两种状态 (enabled/disabled) 创建图标并将它们添加到选择器:
<?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 中没有任何元素会通过 enabling/disabling 自动更改其外观。每次我有一个 button/icon 并不总是可点击时,我一直在使用提到的解决方案。
在 Android 上禁用工具栏图标时是否有任何视觉反馈?
我通过以下操作向应用的操作栏添加了一些图标:
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
item.setIcon(drawable);
有时,我需要禁用一个项目,所以我调用:
item.setEnabled(false);
这确实禁用了该项目,即它不再对触摸做出反应,但禁用它不会更改图标图像。在桌面系统上,我习惯于将项目禁用为灰色或其他方式,以便用户可以清楚地看到该项目已禁用,但是 Android 的 Toolbar
小部件似乎不会发生这种情况呼叫 setEnabled(false)
。图标图像保持不变。它只是不再对触摸做出反应。
当然,我可以在可绘制对象上手动添加一个灰色滤镜,使其显示为灰色,但我不确定这是否可行。
这就是我想问的原因:在 Android 上禁用工具栏图标时,工具栏图标不会改变它们的外观是预期的行为吗?
您可以为两种状态 (enabled/disabled) 创建图标并将它们添加到选择器:
<?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 中没有任何元素会通过 enabling/disabling 自动更改其外观。每次我有一个 button/icon 并不总是可点击时,我一直在使用提到的解决方案。