由于Android 5.0不再支持SplitActionBar,因此我尝试使用ActionMenuView来实现SplitActionBar效果。但是我找不到有关如何使用ActionMenuView的太多信息。

我知道我可以在布局文件中添加ActionMenuView,但是我不知道如何添加菜单项。好像我不能像使用SplitActionBar一样给它们充气。

您能否提供一些有关如何使用ActonMenuView的示例代码?谢谢!

最佳答案

让actionmenuview显示整个屏幕的图标宽度比较麻烦。这是做您想做的一个例子。确保您的ActionMenuView XML项的高度和宽度为wrap_content,然后向右为重力。将其围绕在LinearLayout中,该宽度占据整个宽度并提供背景颜色。

使用此代码初始化ActionMenuView(显然,您将需要更改按钮回调)

        ActionMenuView actionMenuView = (ActionMenuView) findViewById(R.id.editBar);

        final Context context = this;
        MenuBuilder menuBuilder = new MenuBuilder(context);
        menuBuilder.setCallback(new MenuBuilder.Callback() {
            @Override
            public boolean onMenuItemSelected(MenuBuilder menuBuilder, MenuItem menuItem) {
                return onOptionsItemSelected(menuItem);
            }

            @Override
            public void onMenuModeChange(MenuBuilder menuBuilder) {

            }
        });

        // setup a actionMenuPresenter which will use up as much space as it can, even with width=wrap_content
        ActionMenuPresenter presenter = new ActionMenuPresenter(context);
        presenter.setReserveOverflow(true);
        presenter.setWidthLimit(getResources().getDisplayMetrics().widthPixels, true);
        presenter.setItemLimit(Integer.MAX_VALUE);

        // open a menu xml into the menubuilder
        getMenuInflater().inflate(R.menu.editbar, menuBuilder);

        // runs presenter.initformenu(mMenu) too, setting up presenter's mmenu ref...  this must be before setmenuview
        menuBuilder.addMenuPresenter(presenter, this);

        // runs menuview.initialize too, so menuview.mmenu = mpresenter.mmenu
        actionMenuView.setPresenter(presenter);

        presenter.updateMenuView(true);

对于它的值(value),我必须阅读支持库源代码8个小时才能使其正常工作。该文档是垃圾。

10-04 17:13