1

我有一个包含 FrameLayout 的 FragmentActivity。我使用以下代码将 Fragments 添加到 Fragment Activity。

FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.add(R.id.fragment_content, fragment, fargmentTag);
        ft.addToBackStack(null);
        ft.commit();

现在 R.id.fragment_content 是 FrameLayout。这会在视图上添加一个片段。但底层视图仍然可见。意思是通过新片段可以看到一个谎言的观点?我究竟做错了什么。

亲切的问候

4

4 回答 4

1

要么ft.remove()是旧片段,要么使用ft.replace()代替ft.add().

于 2013-04-10T10:01:43.107 回答
1

为下一个片段使用ft.replace();,所以前一个片段将被替换。

于 2013-04-10T10:01:45.917 回答
1

ft.replace() 应该可以正常工作,否则您必须更新您的问题以便更好地理解。

于 2013-04-10T10:03:59.230 回答
0

使用 ft.replace 将用这个片段替换任何以前添加的片段,但是如果活动有一些视图添加到其布局而不是片段,那么通过添加或替换添加的片段将显示其内容而不是原样替换它不是片段。在主布局中添加另一个布局并为其分配一些 id,然后将片段添加到该容器中。希望能帮助到你。

于 2013-09-22T15:12:10.950 回答