放入ViewPager的Fragment会因为Activity发生重新启动也跟着Activity重新创建吗?


正常情况下,Fragment会随着活动的销毁而销毁,随着活动的重建而重建。所以为了避免重复创建Fragment,需要对Fragment进行检查是否为null。
那现在放入ViewPager的Fragment是不是也是遵循这个规则的?是否有必要要创建Fragment前进行检查?要检查的话应该怎么获取这些fragment?因为以我现在的知识找不到可以设置id或者tag的地方
1.在xml中直接对fragment设置id
2.在add,repalce中设置tag,
但是现在这两种方法都用不了了。。。

Android viewpager fragment

阿伦·艾弗森 9 years, 1 month ago

你想获取嵌在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, 1 month ago

Your Answer