我在 ListActivity 上设置的 ActionBar 有一个奇怪的问题。
这是我用来设置菜单的 XML:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_search"
android:title="@string/search_filter"
android:icon="@drawable/ic_search"
android:showAsAction="always|withText" />
<item
android:id="@+id/menu_start_date"
android:title="@string/date_filter"
android:showAsAction="always|withText" />
<item
android:id="@+id/menu_end_date"
android:title="@string/date_filter"
android:showAsAction="always|withText" />
<item
android:id="@+id/menu_filters"
android:title="@string/filters"
android:icon="@drawable/ic_filter"
android:showAsAction="always|withText">
<menu>
<item
android:id="@+id/menu_ratings"
android:title="@string/ratings"
android:icon="@drawable/ic_star"
android:showAsAction="always|withText" />
<item
android:id="@+id/menu_emotions"
android:title="@string/emotions"
android:icon="@drawable/ic_smi2"
android:showAsAction="always|withText" />
<item
android:id="@+id/menu_categories"
android:title="@string/categories"
android:icon="@drawable/ic_folder"
android:showAsAction="always|withText" />
</menu>
<item
android:id="@+id/menu_search_order"
android:title="@string/search_order"
android:icon="@drawable/ic_search_order"
android:showAsAction="ifRoom|withText" />
</item>
</menu>
菜单项menu_search
、menu_start_date
和menu_end_date
子菜单menu_filters
运行良好,但无法menu_search_order
从物理菜单按钮获取菜单(按下按钮时没有任何反应)。
所以我做了一个小测试,看看问题是否来自子菜单,我更改了代码并注释了子菜单部分:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_search"
android:title="@string/search_filter"
android:icon="@drawable/ic_search"
android:showAsAction="always|withText" />
<item
android:id="@+id/menu_start_date"
android:title="@string/date_filter"
android:showAsAction="always|withText" />
<item
android:id="@+id/menu_end_date"
android:title="@string/date_filter"
android:showAsAction="always|withText" />
<item
android:id="@+id/menu_filters"
android:title="@string/filters"
android:icon="@drawable/ic_filter"
android:showAsAction="always|withText">
<!-- <menu>
<item
android:id="@+id/menu_ratings"
android:title="@string/ratings"
android:icon="@drawable/ic_star"
android:showAsAction="always|withText" />
<item
android:id="@+id/menu_emotions"
android:title="@string/emotions"
android:icon="@drawable/ic_smi2"
android:showAsAction="always|withText" />
<item
android:id="@+id/menu_categories"
android:title="@string/categories"
android:icon="@drawable/ic_folder"
android:showAsAction="always|withText" />
</menu> -->
<item
android:id="@+id/menu_search_order"
android:title="@string/search_order"
android:icon="@drawable/ic_search_order"
android:showAsAction="ifRoom|withText" />
</item>
</menu>
进行此更改后,菜单运行良好,并且当我按下物理菜单按钮时会显示该选项。
所以我的问题是:为什么子菜单会阻止我的最后一个菜单出现在第一种情况下?
谢谢!