【问题标题】:Item does not appear on menu [duplicate]项目未出现在菜单上[重复]
【发布时间】:2016-01-11 07:47:18
【问题描述】:

我创建了一个项目“+”,我希望它出现在左上角的三个点菜单旁边。

所以这是 xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.ali.test1.MainActivity">
    <item android:id="@+id/action_settings" android:title="@string/action_settings"
        android:orderInCategory="1" app:showAsAction="never" />

    <item
        android:id="@+id/action_cart"
        android:title="+"
        android:orderInCategory="2"
        android:showAsAction="always"/>
</menu>

现在我在 action_settings 中获得了“+”项,而不是在旁边

我确实检查了“始终在支持操作栏中显示菜单项”,但它没有帮助

有什么帮助吗?

【问题讨论】:

    标签: android android-studio


    【解决方案1】:

    先去掉 android:orderInCategory 然后把 action_cart 放在 action_settings 之前

    并尝试仅使用 android:showAsAction 而不是 app:showAsAction

    所以你的 xml 应该是这样的:

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        tools:context="com.example.ali.test1.MainActivity">
    
        <item
            android:id="@+id/action_cart"
            android:title="+"
            android:showAsAction="always"/>
    
        <item 
            android:id="@+id/action_settings" 
            android:title="@string/action_settings"
            android:showAsAction="never" />
    </menu>
    

    【讨论】:

    • 没用,唯一改变的是下拉菜单中按钮的顺序
    • 我已经编辑了答案。尝试仅使用 android:showAsAction
    • 好吧,令人惊讶的是它通过实际编写 app:shoAsAction..
    • 非常感谢您
    • 嗯,我说的重点是只使用其中一个,我的选择是android。无论如何,很高兴知道你一切顺利
    【解决方案2】:

    尝试始终更改为 ifRoom 并取出 android:orderInCategory="2"

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.ali.test1.MainActivity">
    
    <item
        android:id="@+id/action_cart"
        android:title="+"
        app:showAsAction="ifRoom"/>
    <item 
        android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="1" app:showAsAction="never" />
    

    检查您是否在活动中使用该菜单

     @Override 
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present. 
        getMenuInflater().inflate(R.menu.**themenuyouareusing**, menu);
    
    
        return true; 
    } 
    

    【讨论】:

    • 我也试过没用
    • 确保您在活动中使用该菜单,我修改了答案
    • 我也检查过了,结果我应该像你一样写 app:showAsAction 但对于 action_cart ,谢谢
    • 啊是啊没看到你用错了。我更新了我的答案以反映这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 2019-11-08
    相关资源
    最近更新 更多