如何用另一个片段替换自定义片段?

时间:2015-10-06 14:39:07

标签: android android-fragments

我知道之前在其他线程中已经问过这个问题,比如这个: Trying to replace one fragment with another

但是,在这些情况下,布局文件将具有带有id的节点。在我的例子中,我创建了一个自定义的SettingsFragment,这个SettingsFragment包含许多项目。当我点击一个项目时,它将启动另一个片段CreatePasswordFragment。

现在,我的SettingsFragment没有id(或者它是吗?我是android的新手......),所以我不知道如何使用.replace(R.id.fragment_container,CreatePasswordFragment.newInstance())

到目前为止,我已经使用了以下方法,虽然它有效但我想知道是否有更好的方法可以做到这一点?

getActivity()
            .getSupportFragmentManager()
            .beginTransaction()
            .remove(SettingsFragment.this)
            .replace((android.R.id.content, CreatePasswordFragment.newInstance(userProfile.email))
            .addToBackStack(null)
            .commit();

1 个答案:

答案 0 :(得分:0)

replace()方法中的ID是容器ID,而不是您的片段ID。因此,活动中显示片段的任何布局都是id。所以你做得对。但是,需要注意的一点是,您无需致电remove()。您只需拨打replace()FragmentManager就会自动为您拨打remove()