天天看點

FragmentTabHost切換Fragment時避免重複加載UI,導緻切換後重繪頁面的問題解決

項目中用到了FragmentTabHost,痛苦的是切換Fragment時頁面總是重新加載無法保證是切換前的狀态,現在得以解決!

問題:使用FragmentTabHost時,Fragment之間切換時每次都會調用onCreateView方法,導緻每次Fragment的布局都重繪,無法保持Fragment原有狀态。

解決辦法:在Fragment onCreateView方法中緩存View

代碼如下:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

if (view == null) {
    view = inflater.inflate(R.layout.fragment_tableindex, container, false);
}
// 緩存的viewiew需要判斷是否已經被加過parent,
// 如果有parent需要從parent删除,要不然會發生這個view已經有parent的錯誤。
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null) {
    parent.removeView(view);
}

return view;
}
           

轉:http://www.cnblogs.com/heiyl/p/4112257.html

繼續閱讀