5

我在我的应用程序上使用 ActionBarSherlock,当我在 ActionBar 中禁用某些 MenuItem 时,我的手机上的图标变成半透明(HTC One X 运行股票 Android 4.0.4),但我在任何其他手机或模拟器中都没有看到这种行为。

我是否正确假设此行为不是本机 ActionBar 的默认行为?不过我喜欢这个主意...它警告用户 MenuItem 由于某种原因未启用(在我的情况下,它是一个保存按钮,如果至少有一个字段未填写,它会禁用该按钮)。

我正在考虑为自己提供一个半透明的图标,并在 MenuItem 被禁用时手动设置它。这适用于每个 Android 版本,无论是否为原生 ActionBar。问题是在我的手机(或任何其他具有相同行为的手机)上,它将是半透明的两倍,我不希望那样。

关于如何正确实现这种效果的任何想法?

4

2 回答 2

1

我认为问题出在主题上,您正在应用默认主题。因此,HTC 会覆盖默认主题资源,我认为您必须创建一个自定义主题并将 item_background 更改为 sdk 资源上的默认主题。

<item name="selectableItemBackground">@android:drawable/item_background</item>
于 2012-12-12T12:55:11.887 回答
0

您必须将背景设置为独立于主题。在 .xml 文件中,您可以设置:

android:background="?android:attr/listSelector"

在您想要颜色的视图上。

于 2012-12-15T06:46:02.833 回答