gpt4 book ai didi

android - Android 中带有溢出菜单的自定义按钮栏

转载 作者:太空狗 更新时间:2023-10-29 15:46:05 34 4
gpt4 key购买 nike

在我的应用程序中,我想在扩展到整个屏幕宽度的 LinearLayout 中显示一些按钮。根据屏幕尺寸和/或方向,我想在某些 OverflowMenu 中隐藏那些不适合行的按钮,类似于 ActionBar。如果可能,我想用 ifRoom|always 属性描述 menu 资源文件 中的按钮。

我考虑过显示来自最新 AppCompat 库的 Toolbar,但它包含太多我不需要且不知道如何关闭的元素。

是否有一些库或简单的方法可以做到这一点?

最佳答案

这是一个做你想做的事的例子。确保您的 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 个小时才能让它工作。文档是垃圾。

关于android - Android 中带有溢出菜单的自定义按钮栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26574970/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com