安卓自定义溢出菜单(无操作栏和无菜单按钮)

5
在我的应用程序中,我已经制作了自己的操作栏,并且它运行得非常好。
但是,我想使用ICS设备上没有菜单按钮的溢出按钮的行为。
有没有一种方法可以在ICS中实现一个独立于操作栏的自定义溢出按钮?
谢谢!

澄清一下: 我想摆脱底部有三个点的黑色栏,并在我的自定义操作栏中实现我的自己版本。 - DagW
你看过http://developer.android.com/resources/samples/ActionBarCompat/index.html吗? - techi.services
3个回答

19

userSeven7s 主要使用 ListPopupWindow,但在这种情况下更好的选择是 PopupMenu,它允许你填充标准的 menu.xml。你可以将自己的 ViewButton 放在右上方,并在 onClick 处理程序中创建和显示一个 PopupMenu。

在 ApiDemos > Views > Popup Menu 中可以找到示例。具体地,参考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();
}

完美!它是否与兼容性包一起提供? - DagW
1
不,我想这将是相当困难的回溯。但我实际上建议只利用已有的菜单按钮(所有Android 2.x设备)并在没有菜单按钮的设备上使用弹出式菜单,您可以使用http://developer.android.com/reference/android/view/ViewConfiguration.html#hasPermanentMenuKey()检测到这一点。 - Kevin TeslaCoil
但是使用弹出菜单时,您无法添加图标。 - Deepak Goel

0
你看了ActionBar Sherlock吗?ABS提供了适用于运行Android 2.1及以上版本的所有设备的操作栏支持。ActionBarCompat示例非常有限,不支持旧设备上的溢出菜单。请确保使用Theme.Sherlock.ForceOverflow主题以启用溢出功能。

http://actionbarsherlock.com/

你也可以修改 QuickAction 库以实现你想要的功能。

https://github.com/lorensiuswlt/NewQuickAction


0

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

您可能还想查看PopupWindow此处,以及ListPopupWindow文档此处


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接