項目中用到了FragmentTabHost,痛苦的是切換Fragment時頁面總是重新加載無法保證是切換前的狀态,現在得以解決!
問題:使用FragmentTabHost時,Fragment之間切換時每次都會調用onCreateView方法,導緻每次Fragment的布局都重繪,無法保持Fragment原有狀态。
解決辦法:在Fragment onCreateView方法中緩存View
代碼如下:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
if (view == null) {
view = inflater.inflate(R.layout.fragment_tableindex, container, false);
}
// 緩存的viewiew需要判斷是否已經被加過parent,
// 如果有parent需要從parent删除,要不然會發生這個view已經有parent的錯誤。
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null) {
parent.removeView(view);
}
return view;
}
轉:http://www.cnblogs.com/heiyl/p/4112257.html