Android将带有活动的片段替换为framelayout

时间:2014-02-25 14:40:45

标签: android android-fragments

我有一个带有一些片段的导航抽屉项目,现在我想从菜单中调用一个活动。 将片段加载到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。

我该怎么做?谢谢!

2 个答案:

答案 0 :(得分:1)

可以将片段添加到容器中。 Activity托管一个片段。发生的事情是您正在导航到另一个活动。你在MainActivity中有一个抽屉而不是asd。

如果你想在asd中抽屉也创建一个具有NavigationDrawer并从中扩展的BaseActivtiy。

答案 1 :(得分:1)

您的导航抽屉和FrameLayout都位于一个活动中,您可以在其中替换碎片,同时抽屉将可见。

但是,当您启动一个新活动时,会出现一个新屏幕,该屏幕没有导航抽屉的实现,因为它只属于您的第一个活动。

使用@ Raghunandan的方式创建一个新的BaseActivity,它由两个Activite(一个包含FrameLayout和另一个)扩展,或者如果可以使用另一个Fragment而不是Activity,则创建一个新的片段然后你可以简单地替换FrameLayout中的新文件,你也可以使用NavigationDrawer。 :)