无法设置ActionBarActivity片段中的自定义菜单

时间:2014-11-15 14:28:21

标签: android android-fragments menu

我正在使用ActionBarActivityNavigationDrawer,并希望在每个Fragment中设置自定义菜单。

fragment1中的菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:sabd="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_search"
        android:icon="@android:drawable/ic_menu_search"
        android:orderInCategory="100"
        android:title="@string/action_search"
        sabd:showAsAction="ifRoom"/>
    <item android:id="@+id/action_map"
        android:icon="@drawable/ic_marker"
        android:showAsAction="ifRoom" android:title="@null"/>
</menu>

fragment2中的菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:sabd="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_search"
        android:icon="@android:drawable/ic_menu_search"
        android:orderInCategory="100"
        android:title="@string/action_search"
        sabd:showAsAction="ifRoom"/>
    <item android:id="@+id/action_list"
        android:icon="@drawable/ic_action_list"
        android:showAsAction="ifRoom"
        android:title="@null"/>
</menu>

我将setHasOptionsMenu(true);放入两个片段的onCreate方法中。

尽管如此,我使用自定义drawables作为菜单的第二项,我仍然得到相同的标准菜单图标。

AndroidManifest:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:icon="@android:color/transparent"
    android:theme="@style/CustomActionBarStyle">
</activity>

风格:

<style name="CustomActionBarStyle" parent="@style/Theme.AppCompat.Light">
    <item name="android:displayOptions">useLogo|showHome</item>
</style>

因此,菜单设置正确,但使用旧图标。可能是什么原因?

1 个答案:

答案 0 :(得分:0)

我通过替换

解决了这个问题
    android:showAsAction="ifRoom"

通过

    sabd:showAsAction="ifRoom"/>