나는 잠시 동안 이렇게 해왔다. 맞습니까?다른 조각에서 조각을 팽창시키는 올바른 방법은 무엇입니까?
활동 :
((Activity_Main)getActivity()).toSettings();
나는 잠시 동안 이렇게 해왔다. 맞습니까?다른 조각에서 조각을 팽창시키는 올바른 방법은 무엇입니까?
활동 :
((Activity_Main)getActivity()).toSettings();
당신은 그냥 그 부분을 삭제 .addToBackStack(null)
필요하지 않습니다 당신의 조각이 가기 backstack에 추가되지 않습니다 : 다른 조각의 일부 리스너에서
public void toSettings(){
Fragment_Settings frag = new Fragment_Settings();
fm.beginTransaction()
.replace(R.id.mainContainer, frag)
.addToBackStack(null)
.commit();
}
. 나 또한 나중에 조각을 검색하려는 경우에 대비하여 replace 메소드에 TAG를 추가하는 것이 좋습니다. 이 같은 것 .replace(R.id.mainContainer, frag, TAG)
.
올바른 것처럼 보이지만 몇 가지 제안 사항이 있습니다.
Fragment_Settings
사용 add
대신 replace
의 방법 대신 addToBackStack(null)
의 addToBackStack("tag of Fragment_Settings")
에서 이전의 조각을 다시 싶어합니다.newInstance
패턴이 Fragment_Settings frag = new Fragment_Settings();
보다 더 바람직하다. 그것에 대한 설명을 볼 수 있습니다. 조각 사이를 탐색 할 때 http://www.androiddesignpatterns.com/2012/05/using-newinstance-to-instantiate.html
IMHO 인터페이스를 사용하는 경향이 있지만,이 경우에는 호스팅 활동을 통해 통신하는 것이 잘못되었습니다. FragmentManager에서 FragmentManager를 사용했다면 getChildFragmentManager가 될 것입니다. 예를 들어 중첩 된 ViewPager가있는 Fragment가있을 것입니다. 내가 말했듯이, 내 견해, 다른 것은 다를 수있다. 그러나 나는 그것이 자신의 Activity에있는 것과 관련성이있는 설정 화면이라는 것을 알 수 있다고 주장 할 수 있습니다. –