由于Fragment是保存在内存中,所以在切换tab的时候不会对fragment进行重新加载,但是有时候切换id时需要数据更新,对这个问题找了很多方法都没办法 解决,只能说方法不适用,自己也没对 FragmentPagerAdapter 内的方法进行深入的了解,其实就是简单的两行代码就可以解决
//继承自FragmentPagerAdapter
private PagerAdapter mPagerAdapter= new PagerAdapter(this);
//继承自ViewPager
private MyViewPager mViewPager;
//底部按钮onClick事件
@Override
public void onClick(View v) {
if (v.getClass().getName().equals("com.smartlock.hl.viewtool.BottomView")) {
for (int i = 0; i < mTabIndicator.size(); i++) {
//i来进行fragment判断,根据位置来进行不同fragment的获取与操作
if(i==1){
Log.i("tab","tab1");
if(lockId!=null){
if(isDataRefresh){
MyFragment mFragment=(MyFragment)mPagerAdapter.instantiateItem(mViewPager,i);
Log.i("fragment",mFragment.getTag());
//调用onResume,在此方法进行数据操作
mFragment.onResume();
}
}
}
if (mTabIndicator.get(i) == v) {
mTabIndicator.get(i).isSelect(true);
mViewPager.setCurrentItem(i, false);
} else {
mTabIndicator.get(i).isSelect(false);
}
}
}
}