You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让代码动态创建的OptionsMenu菜单实现app:showAsAction="always"效果

实现方案

Menu.add()方法执行后会返回你刚创建的MenuItem实例,只需调用该实例的setShowAsAction()方法,传入MenuItem.SHOW_AS_ACTION_ALWAYS常量,即可达到和XML中配置app:showAsAction="always"完全一致的效果。

修改后的示例代码

@Override
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    // 接收创建好的菜单项对象
    MenuItem cartMenuItem = menu.add(0, 0, 0, new SetUpClass().menuInitializer(
        Objects.requireNonNull(ContextCompat.getDrawable(requireActivity(),R.drawable.ic_cart)),
        getResources().getString(R.string.cart)));
    // 设置始终作为操作项显示在导航栏
    cartMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}

兼容说明

如果你需要兼容更低版本的Android系统,可以使用兼容库的工具类实现相同效果:

MenuItemCompat.setShowAsAction(cartMenuItem, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);

内容的提问来源于stack exchange,提问作者Emmanuel Njorodongo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:06:07