轉自: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;
}