四大组建Android技术知识Android知识

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

2016-11-11  本文已影响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; 
}
上一篇 下一篇

猜你喜欢

热点阅读