您的位置:首页 > 其它

Fragment 视图重绘问题

2016-04-26 22:45 351 查看
android 中在使用到Tab和ViewPager+Fragment的时候,切换tab会导致view重绘,这样用户体验极差,每次都要重新加载页面,有个办法就是判断根View,根据rootView的状态来判断是否重新加载View

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

if (cacheView == null) {
cacheView = inflater.inflate(R.layout.fragment_page, container, false);
assignViews(cacheView);
}

return cacheView;
}


在销毁Fragment的时候,在onDestroyView里面移除

@Override
public void onDestroyView() {
super.onDestroyView();
//把Fragment的RootView从ViewPager中remove
//缓存的cacheView需要判断是否已经被加过parent, 如果有parent,需要从parent删除
if (null != cacheView) {
((ViewGroup) cacheView.getParent()).removeView(cacheView);
}
}

这是防止页面重绘,关于Fragment的页面数据切换缓存,Viewpager有一个方法可以用来缓存数据

viewPager.setOffscreenPageLimit(5);

参数是缓存页面的数量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: