1. 程式人生 > >Fragment切換注意事項

Fragment切換注意事項

最近在使用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頁面。感覺實際需要可以這樣使用。