Android自定义溢出菜单(没有操作栏,没有menubutton)

时间:2012-05-15 13:17:21

标签: android android-actionbar

在我的应用程序中,我创建了自己的Actionbar,它运行良好。

但我想在没有菜单按钮的ICS设备上使用溢出按钮的行为。

有没有办法在ICS中实现与Actionbar分开的自定义Overflow按钮?

谢谢!

3 个答案:

答案 0 :(得分:19)

userSeven7s主要使用ListPopupWindow,但在这种情况下更合适的是PopupMenu,它允许您夸大标准menu.xml。您可以在右上角放置自己的ViewButton,在onClick处理程序中创建并显示PopupMenu。

可以在ApiDemos中找到一个例子>意见>弹出菜单 。具体来说是PopupMenu1.java

public void onPopupButtonClick(View button) {
    PopupMenu popup = new PopupMenu(this, button);
    popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu());

    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        public boolean onMenuItemClick(MenuItem item) {
            Toast.makeText(PopupMenu1.this, "Clicked popup menu item " + item.getTitle(),
                Toast.LENGTH_SHORT).show();
            return true;
        }
    });

    popup.show();
}

答案 1 :(得分:0)

你看过ActionBar Sherlock吗? ABS为运行Android 2.1及更高版本的所有设备提供操作栏支持。 ActionBarCompat示例非常有限,不支持旧设备上的溢出菜单。请务必使用Theme.Sherlock.ForceOverflow主题启用溢出。

http://actionbarsherlock.com/

您还可以修改QuickAction库以执行您想要的操作。

https://github.com/lorensiuswlt/NewQuickAction

答案 2 :(得分:0)

您可以滑动/滚动操作栏以访问更多选项。将操作栏放在HorizontalScrollView.

您可能还想查看PopupWindow课程hereListPopupWindow文档here