FragmentTabHost切換Fragment時避免重複加載UI

轉自:http://blog.csdn.net/renpengben/article/details/12615487


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

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

<span style="white-space:pre">	</span>private View rootView;// 緩存Fragment view

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

			return rootView;
		}

		rootView = LayoutInflater.from(getActivity()).inflate(
				R.layout.fragment_main1, null);

		return rootView;
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章