美文网首页四大组建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