在使用FragmentStatePageAdapter
时,我得到的片段如下:
@Override
public Fragment getItem(int position) {
return new SuperCoolFragment();
}
但是,稍后在我的代码中,我需要找到这个片段来设置属性。在我使用片段的应用程序的其他部分中,我基本上使用findFragmentByTag(TAG)
标记并查找它们,但现在我不知道该怎么做。
如何使用FragmentStatePageAdapter
查找片段
发布于 2013-07-15 17:33:40
我通过向FragmentStatePagerAdapter
添加一个getItemTag(int position)
函数实现了这一点。如果其他人想走这条路,更新后的文件的一个临时版本是here。
发布于 2015-11-11 20:57:47
正如@Lancelot提到的,你可以直接调用并将结果转换为你的SuperCoolFragment:
SuperCoolFragment frag = (SuperCoolFragment) yourFragmentStatePageAdpater.instantiateItem(null, position);
发布于 2015-08-21 18:35:15
另一种解决方案是复制粘贴FragmentStatePagerAdapter的源代码,并添加一个getFragment
方法:
public Fragment getFragment(int position) {
if (position >= mFragments.size()) {
return null;
}
return mFragments.get(position);
}
https://stackoverflow.com/questions/12384971
复制相似问题