我想将网络中的数据加载到片段中。在Activity
内,我有一个ViewPager
我正在使用FragmentPagerAdapter
为其提供片段。问题是:
如何从活动中检测到ViewPager中的所有片段都已创建并准备好显示数据。如何通知片段,活动内部有数据应该显示?
答案 0 :(得分:1)
如何从活动中检测到来自ViewPager的所有片段都是 创建并准备好显示数据。
这听起来有点奇怪。您Activity
不需要知道所有ViewPager
片段何时被初始化(因为用户实际上只会看到一个片段(如果您不在,那么每一面都会有一个片段可用) 39;与setOffScreenPageLimit()
混乱),更新其余部分没有意义。
如何通知片段,活动内部有数据 应该出示?
您的片段可以将自己注册为Activity
数据加载事件的侦听器。 Activity
将完成获取数据的工作,然后在所有已注册的片段上调用更新方法(应该存储在WeakReferences
中,以避免在我们不应该使用时保留它们#39; T)。主要问题是您有尝试更新项目的风险
另一种hacky方法是使用Activity
:
// get the current fragment(add/subtract one for the available fragments on each side of the curently visible
Fragment f = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.ViewPagerId + ":" + mViewPager.getCurrentItem()); one.)
f.update();
其余的片段将在重新创建时检查新数据是否可用。