【问题标题】:Android replace a fragment with an activity into a framelayoutAndroid将带有活动的片段替换为框架布局
【发布时间】:2014-02-25 14:40:44
【问题描述】:

我有一个带有一些片段的导航抽屉项目,现在我想从菜单中调用一个活动。 片段被加载到框架布局中,并在带有事务的单击事件菜单上替换为新片段。 当我单击菜单项时,我调用此代码:

fragment = new HomeFragment();
fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();

现在如果我用这段代码调用一个活动:

Intent intent = new Intent(MainActivity.this, asd.class);
startActivity(intent);

该活动会覆盖整个导航抽屉,因为我不会用新活动将现有片段替换为 frame_container。

我该怎么做?谢谢!

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

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

    如果你想在 asd 中创建一个抽屉,还可以创建一个具有 NavigationDrawer 的 BaseActivtiy 并从它扩展。

    【讨论】:

      【解决方案2】:

      您的 Navigation Drawer 和 FrameLayout 都在一个 Activity 中,您可以在其中替换片段,同时抽屉将可见。

      但是,当您启动一个新 Activity 时,会出现一个新屏幕,该屏幕没有实现 Navigation Drawer,因为它仅属于您的第一个 Activity。

      使用@Raghunandan 的方式并创建一个新的 BaseActivity,它由您的两个 Activity(一个包含 FrameLayout 和另一个)扩展,或者如果可以使用另一个 Fragment 而不是 Activity 然后创建一个新的 Fragment 然后你只需在 FrameLayout 中替换新的,您也将拥有 NavigationDrawer。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多