2013-02-17 98 views
3

這個問題有兩個部分。正確的方法來關閉分段

假設我們有一個活動,然後是兩個片段:一個ListFragment和一個片段(當您從ListFragment中單擊一個項目時將顯示這個片段)。

第1部分

應該在哪裏我關閉片段?我的意思是從設計的角度來看什麼會被認爲是好的。我看到了兩種選擇:一種是在片段中聲明一個接口,然後讓它實現它的活動,我們稱它爲closeFragment()。這將是一種從片段與Dev Site中顯示的活動進行通信的方式。另一個可能非常簡單,正在調用getActivity()。getSupportFragmentManager()並使用管理器關閉它。

第2部分

我知道如何創建一個片段,並取代它,因爲它是在開發網站,但我對關閉一個疑慮。我應該如何關閉它?像下面的代碼是正確的嗎?假設片段被添加到BackStack。

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
getSupportFragmentManager().popBackStack(); 
transaction.remove(this); 
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE); 
transaction.commit(); 

非常感謝。

回答

2
  1. 我寧願有一個愚蠢的片段,不知道被用在任何事情,這樣你就可以使用它在你希望的任何活動,它會讓你已經精確的目標爲它設置。當然,你可以做任何你想做的事情。

  2. 這看起來像關閉它,但我寧願替換它。只要您有參考,您也可以始終返回片段。

2
FragmentManager fm = getFragmentManager(); 
FragmentTransaction ft = fm.beginTransaction(); 
ft.remove(this); 
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE); 
ft.commit();