美文网首页四大组建Android技术知识Android知识
如何避免多个Fragment切换时候UI重新绘制

如何避免多个Fragment切换时候UI重新绘制

作者: 格吾刚哥 | 来源:发表于2016-11-11 18:33 被阅读263次

    当使用FragmentHost 对多个Fragment切换的时候,我们会发现每个Fragment都会重新调用onCreateView()方法重新绘制UI,如何避免这个问题呢?

    我们可以在设置一个成员变量mView,然后在onCreateView方法里缓存他。

    private View mView;// 缓存Fragment view 
    
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) 
    { 
    Log.i(TAG, "onCreateView"); 
    
    if (mView == null) 
    { 
    mView = inflater.inflate(R.layout.fragment_1, null); 
    // 此处可以调用你初始化控件的方法
    } 
    // 缓存的mView需要判断是否已经被加过parent,如果有parent需要从parent删除,要不然会发生这个mView已经有parent的错误。 
    ViewGroup parent = (ViewGroup) mView.getParent(); 
    if (parent != null) 
    { 
    parent.removeView(mView); 
    } 
    return mView; 
    }
    

    相关文章

      网友评论

        本文标题:如何避免多个Fragment切换时候UI重新绘制

        本文链接:https://www.haomeiwen.com/subject/dfvfpttx.html