0
必须有一些基本的东西,我并不完全了解碎片管理。菜单抽屉碎片即使未显示,也会膨胀其菜单
这里是我的应用程序的当前体系结构:
- 我们已经使用在Eclipse(
MenuActivity.java
) - 从菜单中显示的每个片段都有两个布局提供的模板生成一个菜单的活动。一个是手机,另一个是平板电脑。这些布局仅包含使用
FragmentManager/Transaction
替换为碎片的FrameLayout
。 - 每个片段实现
onCreateOptionsMenu
来添加它们自己的菜单位。
问题是,当我使用抽屉菜单切换标签时,某些选项会保留在操作栏中。此外,接收onOptionsItemSelected
调用的片段始终是选定的最后一个片段。
的MainActivity.java
@Override
public void onNavigationDrawerItemSelected(int position) {
// update the main content by replacing fragments
FragmentManager fragmentManager = getFragmentManager();
Fragment fragment = null;
String tag = "";
switch(position) {
case 0:
tag = "tours_main_fragment";
fragment = new ToursMainFragment();
mTitle = getString(R.string.title_section1);
break;
case 1:
tag = "motos_main_fragment";
fragment = new MotoMainFragment();
mTitle = getString(R.string.title_section2);
break;
}
if(fragment != null) {
fragmentManager
.beginTransaction()
.replace(R.id.container, fragment, tag)
.commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (!mNavigationDrawerFragment.isDrawerOpen()) {
// Only show items in the action bar relevant to this screen
// if the drawer is not showing. Otherwise, let the drawer
// decide what to show in the action bar.
getMenuInflater().inflate(R.menu.menu, menu);
restoreActionBar();
return false;
}
return super.onCreateOptionsMenu(menu);
}
你是对的片段交易。问题在于片段事务发生时菜单不会被清除。 – Becojo 2014-09-27 23:45:05