如何使用FragmentManager在FrameLayout中显示片段A,B,C,...?

时间:2011-10-17 08:07:23

标签: android layout replace fragment

亲爱的StackOverflow人,

我目前在Android应用程序中存在一个大问题。

我正在为我的所有活动使用Fragments,我在这里阅读了所有文档:http://developer.android.com/guide/topics/fundamentals/fragments.html

我的应用程序现在在手机和平​​板电脑上看起来非常酷。

我的问题:

我有一个显示FrameLayout中包含的片段的布局(参见底部的截图)

所以,这是片段A的截图。

现在,我希望点击左键,将片段A替换为片段B,或C,或......

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <fragment android:name="com.stackoverflow.question.FRAGMENT_A"
            android:id="@+id/list"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
</FrameLayout>

正如您在我的xml中看到的那样,FRAGMENT_A是硬编码的。

想象一下,我想在6个不同的片段之间切换,我做什么? 将我的所有6个片段放在XML中,或者是否有一种方法可以用FRAGMENT_B,C,D,E等以编程方式替换FRAGMENT_A。

非常感谢你的帮助。

enter image description here

1 个答案:

答案 0 :(得分:14)

使用FragmentTransaction替换片段。

你可以以编程方式替换片段。

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
FragmentB fb = new FragmentB();
ft.replace(R.id.list, fb);
ft.addToBackStack("replacingFragmentA");
ft.commit();

添加到后台堆栈是可选的。