遇到问题:将4个Fragment中的数据保存到一个Bundle中,在第一个页面从不可见进入可见状态时,从Bundle中成功获取到数据并执行settext,问题来了。从第二个页面返回页面一时 一切正常,但是从页面三、四再返回页面一,数据获取到了、settext语句也正常执行,但是没有任何显示。
/**
* 重新进入本页面重新加载数据以供修改
*
* @param isVisibleToUser
*/
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && intoFlag > 1) {
Bundle bundle = getAddInfo();
infotype_frag_baseinfo.setRightTvv(bundle.getString(Constant.TYPEID));// 信息类型
DebugLogUtil.getInstance().Debug(getSimpleClassName() + "可见");
} else {
DebugLogUtil.getInstance().Debug(getSimpleClassName() + "不可见");
intoFlag++;
}
}
Sebenarnya, ini bergantung pada
Adapter
mana yang anda gunakanFragmentPagerAdapter akan sentiasa menyimpan
untuk sejumlah kecilFragment
dalam memori Adalah disyorkan untuk menggunakanFragmnet
FragmentStatePagerAdapter hanya menyimpan
Fragment
Bilangan pramuat untuk
Fragment
boleh ditetapkan melaluisetOffscreenPageLimit(int count)
Pass in Viewpager.setOffscreenPageLimit(int count); untuk menghantar bilangan Fragmen yang perlu cache paparan untuk mencapai keperluan untuk cache semua data Fragment. Kod ilustrasi tidak lagi digunakan.