解決同一activity下多個fragment 切換時重複執行onCreateView方法
阿新 • • 發佈:2019-01-11
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;
}