我正在学习android,但对菜单选项的工作方式不太确定.这是我的设置,
I have a main activity which has a fragment inside it. Main activity’s onCreateOptionsMenu looks like this
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
这个menu_main.xml仅具有设置按钮.我应该在片段中添加刷新按钮,所以我创建了一个新的菜单xml并将此代码添加到片段类中
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.tempfragment, menu);
}
当我运行该应用程序并进行长按时,我看到了刷新和设置按钮.
我的问题是,当我们为主要活动及其相关片段提供菜单选项时,流程如何?它是否结合了两个菜单?我可以看到它正在合并,但是我不确定如何在内部处理它?有人可以向我解释吗?
编辑
这是片段的菜单文件
xmlns:app="http://schemas.android.com/apk/res-auto" >
app:showAsAction="never"
/>
解决方法:
如果您有一个MainActivity可以扩展选项菜单menu_main.xml,则该选项菜单将始终出现在MainActivity创建的任何片段上.
在每个片段代码中,您可以为该特定片段创建选项菜单.假设您在FriendsFragment中为menu_friends.xml充气.由MainActivity创建FriendsFragment的实例时,将同时显示menu_main.xml和menu_friends.xml.您可以对所有片段重复此操作.
标签:android
来源: https://codeday.me/bug/20191120/2041830.html