1. 程式人生 > >解決同一activity下多個fragment 切換時重複執行onCreateView方法

解決同一activity下多個fragment 切換時重複執行onCreateView方法

Fragment之間切換時每次都會呼叫onCreateView方法,導致每次Fragment的佈局都重繪,無法保持Fragment原有狀態。

解決的辦法是:在Fragment onCreateView方法中快取View。

private View rootView;//快取Fragment view @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if(rootView==null){ rootView=inflater.inflate(R.layout.tab_fragment, 
null);
}else{ //快取的rootView需要判斷是否已經被加過parent, 如果有parent需要從parent刪除,要不然會發生這個rootview已經有parent的錯誤。 ViewGroup parent = (ViewGroup) rootView.getParent(); if (parent != null){ parent.removeView(rootView);
} return rootView; }