참고 Url

https://developer.android.com/reference/android/app/Fragment.html#getChildFragmentManager()


fragment 안에 fragment 집어 넣기

작업을 하다보면 프레그멘트 안에 프레그멘트를 집어 넣어야 할경우가 생깁니다.

예를 들어 MapFragment 라던지..


주의사항! 

getChildFragmentManager() 는 api 17 부터 사용이 가능하다고 되어있어서,

최소버전의 조정이라든지, 아니면 옛날 support-v4 라이브러리를 수동으로 import 해서 사용할수도 있지만

Dex문제라던지(Multi dex 필요) 여러모로 번거로움이 생기드라구요




방법1. XML 내에서의 정의

<fragment
    android:id="@+id/frame"
    android:name="your package name.SubFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="20dp"
    android:tag="info_sub"/>

방법2. Java code 로 정의

Override method 추가 해준뒤에


@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    Fragment sub2 = new SubFragment2();
    FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
    transaction.replace(R.id.frame_container2, sub2).commit();
}

}

+ Recent posts