fragment中嵌套tabLayout+viewPager,外部fragment切换的时候内部出现

来源:互联网 发布:linux设ip 编辑:程序博客网 时间:2024/05/16 14:34

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;    }

这样就可以完美解决内部空白的问题。

注意:可以能不止这个这种组合会出现这种问题,其他多层嵌套都可能会出现这种问题。这种解决办法可以利用。

阅读全文
1 0
原创粉丝点击