背景:最近在寫一個音樂播放器,然后一個ViewPager里面加載了四個Fragment,但是在切換過程中發現,Fragment總是被銷毀,在網上查了一下,發現有兩種辦法可以保證Fragment不被銷毀,保持切換前的狀態。
方法一:只需要一行代碼pager.setOffscreenPageLimit(3); 【這個網上很多博客都用提到過,沒有用過】
方法二【驗證OK】:
在Fragment的onCreateView方法中,做如下處理:
private View parentView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (parentView == null) { parentView = inflater.inflate(R.layout.fragment_singer, container, false); //在這里做一些初始化處理 initChoiceLayout(); } else { ViewGroup viewGroup = (ViewGroup) parentView.getParent(); if (viewGroup != null) viewGroup.removeView(parentView); } return parentView; }
這樣子就OK了。