Android ActionbarSherlock顶部显示菜单按钮

时间:2012-10-08 07:00:11

标签: android android-actionbar actionbarsherlock

我正在尝试在我的应用程序中实现ActionBarSherlock,我需要在应用程序的顶部显示菜单,集成在操作栏中。问题是它无法正常工作。我这样使用它:

public boolean onCreateOptionsMenu(Menu menu) {
    menu.add("Refresh")
        .setIcon(R.drawable.ic_action_refresh)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);

    menu.add("Settings")
        .setIcon(R.drawable.ic_action_settings)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    return true;
}

所以我想要实现的是在操作栏的右侧显示一个刷新图标和一个菜单图标,单击时应打开默认菜单。我在ActionbarSherlock演示中检查了ForcedOverflowItem示例,但它没有按我的意愿工作。我需要看起来与Android 2. +和Android 4中的相同。+。

任何建议/帮助/建议我如何才能使其发挥作用?

3 个答案:

答案 0 :(得分:6)

您可以执行此xml文件行。 我在其他一些帖子中看到了这个,但我现在无法跟踪它。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/more"
        android:showAsAction="always"
        android:icon="@drawable/abs__ic_menu_moreoverflow_holo_dark">
        <menu>
            <item
                android:id="@+id/remove"
                android:showAsAction="withText|never"
                android:title="@string/remove">
            </item>
        </menu>
    </item>

</menu>

然后像普通菜单一样充气。

public boolean onCreateOptionsMenu(Menu menu) {
        getSupportMenuInflater().inflate(R.menu.overlow, menu);
        return true;
    }

答案 1 :(得分:5)

根据我在ActionbarSherlock文档中的介绍,您无法强制菜单图标显示在Android 4. +中。当设备有菜单按钮时,菜单图标不会出现。我想编写ActionbarSherlock的人很了解主题; - )

答案 2 :(得分:3)

请阅读dorjeduck的回答。如果您想在所有设备上拥有相同的体验,则必须在子菜单中添加自定义菜单。这里的代码是:

SubMenu sub = menu.addSubMenu("More");
sub.setIcon(R.drawable.abs__ic_menu_moreoverflow_holo_dark);
sub.add(0, MENU_SETTINGS, 0, "Settings");