我在下面有简单的代码
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
这些代码行做了什么?
答案 0 :(得分:58)
getFragmentManager()
返回FragmentManager以与相关的片段进行交互 通过这项活动。
FragmentManager,用于创建添加,删除或替换片段的事务。
fragmentManager.beginTransaction();
对与之关联的Fragments启动一系列编辑操作 这个FragmentManager。
将使用的FragmentTransaction对象。
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
使用ID为mFeedFragment
R.id.fragment_container
替换当前片段
fragmentTransaction.addToBackStack(null);
将此事务添加到后台堆栈。这意味着 交易将在提交后被记住,并将被撤销 以后弹出堆栈时的操作。
对返回按钮的使用很有用,因此可以回滚事务。 参数名称:
是此后备堆栈状态的可选名称,或者为null。
有关其他问题What is the meaning of addToBackStack with null parameter?
的信息,请参阅参考资料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
答案 1 :(得分:21)
FragmentManager
FragmentManager
在Android中管理Fragments
,特别是它处理片段之间的事务。事务是一种添加,替换或删除片段的方法。
FragmentTransaction
如上所述,FragmentTransaction
为我们提供了在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()
安排此事务,这不是即时的;它在主线程上安排在线程就绪时完成。