创建我的第一个应用程序,混淆主要活动和碎片

时间:2017-11-30 14:50:16

标签: java android

我对此很新,但对创建我的第一个应用程序非常感兴趣 我(以某种方式)管理导航抽屉在我的应用程序中工作,主要是因为遵循YouTube教程。

我有我的主要活动和其他5个片段文件,其中一个称为“Home”片段 每当我按导航栏上的“主页”时,我希望将用户带到主活动页面,该页面是用户首次打开应用程序时当前启动的页面。
所以基本上我想要一个片段出现在主屏幕上的活动中 我不知道如何做到这一点,并已经尝试查看片段文档,它让我感到困惑。

有人可以帮忙吗?

要点:
1.想在主页上显示片段
2.我想要这样做的唯一原因是我在主要活动上放置的所有内容然后出现在每个单独的片段页面上

2 个答案:

答案 0 :(得分:1)

正如 @Noise Generator 所评论的那样,你必须用你喜欢的Home片段替换你的片段: -

如果您只想将片段用作活动的顶级内容视图,那么

    Fragment newFragment = new HomeFragment();
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.add(android.R.id.content, newFragment).commit();

另外明智的是, @Dheeraj Joshi 声明你必须创建一个资源然后替换它

    Fragment newFragment = new HomeFragment();
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.replace(R.id.frame_container, newFragment).commit();

答案 1 :(得分:0)

要将片段添加到Activity或FramentActivity中,需要一个Container。该容器应该是一个“Framelayout”,可以包含在xml中,否则你可以使用默认容器,如“android.R.id.content”来删除或替换Activity中的一个片段。

XML文件

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- Framelayout to display Fragments -->
<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<ImageView
    android:id="@+id/imagenext"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_margin="16dp"
    android:src="@drawable/next" />

或使用片段标签

<fragment 
android:name="com.samplefrag"
android:id="@+id/samplefrag"
android:background="#ffffff"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginTop="50dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" />

在片段容器中,您也可以使用片段事务动态添加片段,如下所示

            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            HelloFragment hello = new HelloFragment();
            fragmentTransaction.add(R.id.frame_container, hello, "HELLO");
            fragmentTransaction.commit();

<强>更新

你的问题, 您希望在按主页按钮时显示主要活动,因此您可以使用Intent并按意图发送数据,然后将该数据接收到Main Activity并根据它使用片段事务来显示活动中的片段