當第一次創(chuàng)建fragment的時候在onCreateView里面初始化view窃款,下一次創(chuàng)建時不需要重新創(chuàng)建view時壁熄,希望使用已經創(chuàng)建的扶檐,所以要把view設為全局變量。view為空使碾,表示是第一次蜜徽,則初始化view。如果view不為空部逮,則返回該view娜汁,需要注意的是:如果直接返回會報錯(java.lang.IllegalStateException: The specified child already has a parent),還沒研究什么原因兄朋,但是大體意思就是有一個parent了掐禁,所以在返回該view前要找到該view的parent,然后remove掉該view颅和,再返回就ok了傅事。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (mView == null) {
mView = inflater.inflate(R.layout.fragment_list, container, false);
} else {
//緩存的mView需要判斷是否已經被加過group,如果有group需要從group刪除,要不然會發(fā)生這個mView已經有group的錯誤峡扩。
ViewGroup group = (ViewGroup) mView.getParent();
if (group != null) {
group.removeView(mView);
}
}
return mView;
}
贈人玫瑰蹭越,手有余香。您的支持是我創(chuàng)作最大的動力!