如何让代码动态创建的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
相关产品推荐
相关产品推荐

