2015-10-16 49 views
1

我一直在试图找出FragmentManager参数实际上在FragmentStatePagerAdapter中的含义。在文档中,没有方法实际使用它。它的目的也从文档中丢失。传入FragmentStatePagerAdapter的FragmentManager是什么?

http://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html#FragmentStatePagerAdapter(android.support.v4.app.FragmentManager)

构造的描述实际上是空白的,并没有其任何方法的实现都需要使用FragmentManager的。

什么是FragmentManager

(我知道什么是FragmentManager在其他情况下使用,只是没有在这个适配器的情况下)

回答

2

什么是FragmentManager呢?

FragmentStatePagerAdapter处理Fragment s。正如您在Activity中所做的那样,您将使用FragmentManagerbeginTransaction()并将其提交,FragmentStatePagerAdapter也是如此。在某个时间点,它会调用beginTransaction,使用您提供给超级构造函数的FragmentManager,将调用getItem(),在那里返回您想要显示的Fragment,并提交它。正如@CommonsWare所指出的那样,FragmentStatePagerAdapter也会小心地删除Fragment

+1

具体来说,它使用'FragmentTransactions'来添加和删除页面。 'FragmentPagerAdapter'只添加页面; 'FragmentStatePagerAdapter'将同时添加和删除页面(后者用于限制页面的数量,以帮助控制堆的消耗)。你可以在[FragmentStatePagerAdapter]的源代码中看到这个(https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v13/java/android/support/v13/app例如,/FragmentStatePagerAdapter.java)。 – CommonsWare

+0

如果我真的说话,你们两位高手的头脑真的是Android和Java知识的惊人来源。感谢您帮助我们。! :) –

+0

@Blackbelt所以,在我的代码中,如果我在'FragmentManager'中设置'Fragment',然后将它传递给适配器,当我尝试检索时会有任何排序冲突来自经理的'碎片'? – nukeforum

相关问题