2013-02-17 3 views
3

이 질문에는 두 부분이 있습니다.조각을 닫는 올바른 방법

Activity가 있고 ListFragment와 Fragment (ListFragment에서 항목을 클릭하면 표시됨)의 두 조각이 있다고 가정합니다.

1은 어디에서 조각을 닫아야? 이것에 의해 나는 디자인 관점에서 좋은 것으로 간주 될 수있는 것을 의미한다. 두 가지 옵션을 볼 수 있습니다. 하나는 프래그먼트에 인터페이스를 선언하고 하나는 액티비티를 구현하는 것이고, 하나는 closeFragment()입니다. 이것은 단편에서 Dev 사이트에 표시된 것과 같은 활동으로 통신하는 방법입니다. 다른 하나는 아마도 매우 간단하며 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(); 
관련 문제