android - 菜单在片段中不可见
问题描述
我有一个片段,其中包含我尝试调用 setHasOptionsMenu(true);
的菜单onCreate()
,onCreateView()
并将 a 设置toolbar
为我的Actionbar
. 我已经在这里解决了所有相同的问题,但似乎没有一个解决方案对我有用!我尝试更改主题 menu.clear() 并从onCreateOptions()
Activity返回 true
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true);
// Inflating view layout
layout = inflater.inflate(R.layout.side_panel, container,false);
toolbar = layout.findViewById(R.id.toolbar);
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
return layout;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_side_panel,menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
解决方案
如果您在 XML 文件中声明了 Toolbar,那么试试这个首先使用 findViewByid() 获取对 Toolbar 的引用,然后扩充您的菜单
mToolbar.inflateMenu(R.menu.main_menu);
推荐阅读
- node.js - Node.js Mongoose 使用 bcrypt 登录
- java - Java:集合映射中的重复列
- node.js - 如何在我的反应应用程序中从 mongodb 数据库中获取对象的 ID?
- selenium - java.lang.NoClassDefFoundError: org/openqa/selenium/remote/internal/JsonToWebElementConverter
- c++ - 如何将三个功能合二为一?
- ios - ld:找不到-lBoringSSL-GRPC Xcodebuild React Native 的库
- javascript - 自定义选择字段/选项打开方向
- midi - 你能在音乐 XML 文档中插入一个 MIDI“文本”事件吗?
- c# - 无法跟踪实体类型的实例,因为已在跟踪具有相同 ID 键值的另一个实例
- python - 如何在 csv 中仅重写一个字段(行 [n])但同时能够处理数据?