操作栏在 FragmentTransaction replace() 和 FragmentTransaction add() 上的行为方式
Posted
技术标签:
【中文标题】操作栏在 FragmentTransaction replace() 和 FragmentTransaction add() 上的行为方式【英文标题】:How action bar behave on FragmentTransaction replace() and FragmentTransaction add() 【发布时间】:2014-09-22 02:17:31 【问题描述】:我正在使用片段,在我的应用程序中显示两个屏幕。 每个 Fragment 都有自己的一组用于操作栏按钮的菜单布局。
在使用 FragmentTransaction replace() 方法提交片段时,它可以通过扩展每个片段的菜单布局来正常工作。
在哪里
在使用 FragmentTransaction add() 方法提交片段时,它会膨胀两个片段的菜单布局。
FragmentTransaction 的 add() 方法如何改变行为。
是否可以调用 FragmentTransaction 的 add() 方法并仅针对可见的 Fragment 扩展菜单布局?
【问题讨论】:
【参考方案1】:我得到了这个答案,每当我在 onCreateOptionsMenu 中添加任何片段时,我都应该调用 menu.clear()
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
menu.clear();
inflater.inflate(R.menu.menu_search, menu);
【讨论】:
以上是关于操作栏在 FragmentTransaction replace() 和 FragmentTransaction add() 上的行为方式的主要内容,如果未能解决你的问题,请参考以下文章
FragmentTransaction的commit的异步操作
使用 FragmentTransaction.attach() 和 detach() 时不保留 Fragment ui
Nativescript - 搜索栏在操作栏中无法正确显示(IOS)
fragmentTransaction.add 和 fragmentTransaction.replace 之间的区别
共享元素过渡适用于 FragmentTransaction.replace() 但不适用于 FragmentTransaction.add()