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

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);
		}
 //緩存的rootView須要判斷是否已經被加過parent, 若是有parent須要從parent刪除,要否則會發生這個rootview已經有parent的錯誤。
        ViewGroup parent = (ViewGroup) rootView.getParent();
        if (parent != null) {
            parent.removeView(rootView);
        } 
		return rootView;
	}

Fragment之間切換時每次都會調用onCreateView方法,致使每次Fragment的佈局都重繪,沒法保持Fragment原有狀態。java

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

相關文章
相關標籤/搜索