FragmentManager和FragmentTransaction到底做了什么?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FragmentManager和FragmentTransaction到底做了什么?相关的知识,希望对你有一定的参考价值。
我在下面有简单的代码
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
这些代码行做了什么?
getFragmentManager()
返回FragmentManager以与与此活动关联的片段进行交互。
FragmentManager,用于创建添加,删除或替换片段的事务。
fragmentManager.beginTransaction();
在与此FragmentManager关联的Fragments上启动一系列编辑操作。
将使用的FragmentTransaction对象。
fragmentTransaction.replace(R.id.fragment_container, mFeedFragment);
用布局上的mFeedFragment
替换当前片段,其id为: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
android FragmentManager
FragmentManager
管理Android中的Fragments
,特别是它处理片段之间的事务。事务是一种添加,替换或删除片段的方法。
Android 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()
安排这个交易,这不是瞬时的;它在主线程上安排在线程准备好时完成。
以上是关于FragmentManager和FragmentTransaction到底做了什么?的主要内容,如果未能解决你的问题,请参考以下文章
FragmentManager和FragmentTransaction到底做了什么?
在 DialogFragment 中使用 FragmentManager 和 FragmentTransaction
如何实现 FragmentManager 和 FragmentTransaction 来替换单个片段?
AsyncTask 和 FragmentManager 的问题