放入ViewPager的Fragment会因为Activity发生重新启动也跟着Activity重新创建吗?
正常情况下,Fragment会随着活动的销毁而销毁,随着活动的重建而重建。所以为了避免重复创建Fragment,需要对Fragment进行检查是否为null。
那现在放入ViewPager的Fragment是不是也是遵循这个规则的?是否有必要要创建Fragment前进行检查?要检查的话应该怎么获取这些fragment?因为以我现在的知识找不到可以设置id或者tag的地方
1.在xml中直接对fragment设置id
2.在add,repalce中设置tag,
但是现在这两种方法都用不了了。。。
阿伦·艾弗森
9 years, 7 months ago
Answers
你想获取嵌在ViewPager中的Fragment的目的是什么?更新Fragment吗?
如果是这个目的的话,需要实现ViewPager的FragmentPagerAdapter,然后override方法
getItemPosition(Object object)
,把入口参数object强制转型为你定义的Fragment类;
所以你还需要为自定义的Fragment实现一个public方法,比如
public void update()
用来更新界面。
你需要调用这个方法
PagerAdapter.notifyDataSetChanged()
,
getItemPosition
才会被调用到。
不建议通过记录tag或者id的方式来管理ViewPager内的Fragment。
狂暴的黑岩
answered 9 years, 7 months ago