繁体   English   中英

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

[英]Android replace a fragment with an activity into a framelayout

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

我怎样才能做到这一点? 谢谢!

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM