Fragment切換注意事項
阿新 • • 發佈:2018-11-11
最近在使用fragment,現將其切換時的一些小問題總結如下:
首先是程式碼:
FragmentManager fm1 = getSupportFragmentManager(); FragmentTransaction transaction = fm1.beginTransaction(); mArticleDetailFragment = new ArticleDetailFragment(); mArticleDetailFragment.setUrl(event.getsUrl()); transaction.setCustomAnimations( R.animator.push_left_in, R.animator.push_left_out, R.animator.push_right_in, R.animator.push_right_out); //切換動畫是由進入的fragment和退出的fragment共同實現的,這裡的四個引數分別表示 //第一個引數:進入切換時將要進入的fragment的進入動畫 //第二個引數:進入切換時將要退出的fragment的退出動畫 //第三個引數:退出切換時將要進入的fragment的進入動畫 //第四個引數:退出切換時將要退出的fragment的退出動畫 transaction.add(R.id.id_content,mArticleDetailFragment); transaction.remove(mArticlesFragment); transaction.addToBackStack(null); //在這裡將原來的fragment放在後方的棧裡面,這樣但點選退出時就能回退到之前的fragment頁面。 transaction.commit();
注意事項:
1)可以使用setCustomAnimations設定切換動畫,注意切換動畫四個引數的含義(在程式碼註釋中有說明)。
2)設定切換動畫的程式碼應該放在fragment的add、remove和replace操作之前,否則不起作用。
3)在切換時不直接使用replace,而使用add,之後將替換下來的fragment放在棧裡,這樣在新的fragment頁面使用者回退時,就會退到之前的fragment頁面。感覺實際需要可以這樣使用。