2

我正在尝试在我的应用程序中实现 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;
}

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

任何建议/帮助/建议我怎样才能让它工作?

4

3 回答 3

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;
    }
于 2013-03-08T10:55:20.953 回答
5

根据我在 ActionbarSherlock 的文档中阅读的内容,您不能强制菜单图标出现在 Android 4.+ 中。当设备有菜单按钮时,菜单图标不会出现。我猜写 ActionbarSherlock 的人很了解这个主题;-)

于 2012-10-08T07:03:26.397 回答
3

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

SubMenu sub = menu.addSubMenu("More");
sub.setIcon(R.drawable.abs__ic_menu_moreoverflow_holo_dark);
sub.add(0, MENU_SETTINGS, 0, "Settings");
于 2012-10-08T07:18:17.023 回答