在 Android 上是否有可能具有不同样式的 MenuItems(来自选项菜单硬件键或操作栏的菜单项 - 无论如何它们都是相同的)?
我希望一个应用选择器,另一个应用不同的选择器。
从我的在线搜索中,我发现您可以更改主题并使用自己的样式覆盖属性,但这适用于所有菜单项。
我仍然可以android:background
在 XML 中设置属性吗?
在 Android 上是否有可能具有不同样式的 MenuItems(来自选项菜单硬件键或操作栏的菜单项 - 无论如何它们都是相同的)?
我希望一个应用选择器,另一个应用不同的选择器。
从我的在线搜索中,我发现您可以更改主题并使用自己的样式覆盖属性,但这适用于所有菜单项。
我仍然可以android:background
在 XML 中设置属性吗?
的项目是可能的ActionBar
。您必须将想要具有不同选择器的项目定义为自定义操作视图。
<item
android:id="@+id/menu_custom"
android:actionLayout="@layout/action_view"
android:showAsAction="always"/>
android:actionLayout
在您引用的布局中,您ImageView
可以分配选择器并使其可点击和聚焦。
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/action_view_background"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:minWidth="56dip"
android:paddingBottom="8dip"
android:paddingTop="8dip"
android:src="@drawable/ic_launcher" />
点击事件不由 处理onOptionsItemSelected
。您必须附加一个OnClickListener
in onCreateOptionsMenu
。
menu.findItem(R.id.menu_custom).getActionView().setOnClickListener(l);
引用这个答案
根据http://developer.android.com/guide/topics/ui/menus.html#checkable的官方文档
注意:图标菜单(来自选项菜单)中的菜单项不能显示复选框或单选按钮。如果您选择将图标菜单中的项目设为可选中,则必须在每次状态更改时通过交换图标和/或文本手动指示选中状态。
这同样适用于操作栏项目,因为它是同一个对象,MenuItem