fragment中嵌套tabLayout+viewPager,在内部viewPager利用fragment填充的时候,在最外层出现fragment切换的时候内部的viewPager会出现空白,看下面图:
大致页面就是这样子的。点击按钮1 2 3 4,的时候切换外部fragment,内部的viewpager内部填充fragment会出现空白,通俗的可以这么解释:在fragment中嵌套fragment,当外部fragment切换时,内部fragment会出现空白情况
* 这是因为外部fragment切换后,内部fragment会走destroy生命周期,当外部fragment切换回来后自然
* 内部fragment就不存在了,因此我们可以利用tag值保存当前fragment的视图view,当内部fragment已
* 被创建过了后保存tag,再次切换回来后调用tag值
解决代码如下:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if(container.getTag()==null){
view = inflater.inflate(R.layout.study, container, false);
init();
container.setTag(view);
}else{
view = (View) container.getTag();
}
return view;
}
这样就可以完美解决内部空白的问题。
注意:可以能不止这个这种组合会出现这种问题,其他多层嵌套都可能会出现这种问题。这种解决办法可以利用。