65

我在下面有简单的代码

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

这些代码行有什么作用?

4

2 回答 2

73
getFragmentManager()

返回 FragmentManager 以与与此活动关联的片段进行交互。

FragmentManager 用于创建用于添加、删除或替换片段的事务。

fragmentManager.beginTransaction();

对与此 FragmentManager 关联的 Fragment 启动一系列编辑操作。

将使用的 FragmentTransaction 对象。

fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);

mFeedFragment用 id 的布局替换当前片段:R.id.fragment_container

fragmentTransaction.addToBackStack(null);

将此事务添加到后台堆栈。这意味着事务将在提交后被记住,并在以后从堆栈中弹出时将其操作反转。

对于返回按钮的使用很有用,因此可以回滚事务。参数名称:

是此返回堆栈状态的可选名称,或 null。

有关信息,请参阅其他问题AddToBackStack with null 参数的含义是什么?

Last 语句提交事务并执行所有命令。

有关更多帮助,请参阅 google 文档:

http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html http://developer.android.com/reference/android/app/FragmentManager.html http://developer.android。 com/reference/android/app/FragmentTransaction.html

于 2015-04-21T21:31:57.247 回答
26

安卓FragmentManager

A在 Android 中进行FragmentManager管理Fragments,特别是它处理片段之间的事务。事务是一种添加、替换或删除片段的方法。

安卓FragmentTransaction

如前所述,aFragmentTransaction为我们提供了在 Android 中添加、替换或删除片段的方法。它为我们提供了一个与片段交互的接口。


fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);

该方法replace(int containerViewId, Fragment fragment)替换容器中的现有Fragment对象containerViewId并添加Fragment fragment

fragmentTransaction.addToBackStack(null);

这个方法, addToBackOfStack(String name), 将此事务添加到后台堆栈,可以使用它以便Fragments被记住并可以被再次使用Activity

fragmentTransaction.commit();

该方法commit()调度此事务,这不是即时的;它被安排在主线程上,以便在线程准备好时完成。

参考

于 2015-04-21T21:33:49.197 回答