我有一个带有一些片段的导航抽屉项目,现在我想从菜单中调用一个活动。 将片段加载到framelayout中,并使用事务在click事件菜单上替换为新片段。 当我点击菜单项时,我会调用此代码:
fragment = new HomeFragment();
fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
现在,如果我使用此代码调用活动:
Intent intent = new Intent(MainActivity.this, asd.class);
startActivity(intent);
活动覆盖整个导航抽屉,因为我没有用新活动将现有片段替换为frame_container。
我该怎么做?谢谢!
答案 0 :(得分:1)
可以将片段添加到容器中。 Activity托管一个片段。发生的事情是您正在导航到另一个活动。你在MainActivity中有一个抽屉而不是asd。
如果你想在asd中抽屉也创建一个具有NavigationDrawer并从中扩展的BaseActivtiy。
答案 1 :(得分:1)
您的导航抽屉和FrameLayout都位于一个活动中,您可以在其中替换碎片,同时抽屉将可见。
但是,当您启动一个新活动时,会出现一个新屏幕,该屏幕没有导航抽屉的实现,因为它只属于您的第一个活动。
使用@ Raghunandan的方式创建一个新的BaseActivity,它由两个Activite(一个包含FrameLayout和另一个)扩展,或者如果可以使用另一个Fragment而不是Activity,则创建一个新的片段然后你可以简单地替换FrameLayout中的新文件,你也可以使用NavigationDrawer。 :)