做底部栏的时候,发现各个fragment之间数据能传递,就是控件不刷新,找了半天,原来时我fragment用viewpager嵌套,viewpager会自动预加载
ViewPager会根据setOffscreenPageLimit()方法设置的大小,自动预加载。
但是viewpager将预加载最低设置为1,防止滑动卡。
解决方法1、重写viewpager,较为复杂
2、可以fragment的setUserVisibleHint实现,此方法在fragment创建前调用,可在此方法中实时刷新控件。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {//懒加载
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
type = SharedPreferencesUtils.getStringValue(getContext(), Constant.TYPE, "");
// Log.i("text",type);
tv_type.setText("打印类型-" + type);
}
}
网友评论