Android fragment 다루기 - 2. Code에서 추가
저번 시간에 이어서, Code에서 직접 fragment를 추가하는 방법에 대해 알아보도록 하겠습니다.
저번 강좌에서 말씀 드렸듯이, Code를 통하여 fragment를 붙이게되면, 동적인 제어가 가능해집니다. 즉, 화면에서 보이기와 감추기가 가능해집니다. 이를 이용하여 페이지 전환 목적으로 많이 사용되고 있습니다.
이번 강좌에서는 동적인 제어 이전에 간단히 fragment를 화면에 추가하는 방법까지 살펴보도록 하겠습니다.
이번에 작성될 예제는 이전 강좌에서 만들었던 fragment 아래에 Code를 통하여 fragment를 추가하도록 하겠습니다. 구분을 위해서 색상에 차이를 두었습니다.
Fragment의 레이아웃 XML과 Class를 만드는 방법은 이전의 방법과 동일합니다.
다만 XML에서 <Fragment>를 이용하여 붙이기 않고, 일단 <FrameLayout>을 만들고, java 코드내에서 이 framelayout에 fragment를 씌워주게됩니다.
XML과 fragment Class를 위와 같이 만들어줍니다. 자세한 내용은 이전 강좌를 참고하시기 바랍니다.
XML에 <FrameLayout>을 추가하여 줍니다. id는 "fragmentBorC"로 지정하였습니다. 차후에 B와 C를 교환하도록 구현할 예정입니다.
이제 java 코드에서 fragment를 추가시켜주는 코드를 넣어줍니다. 본 예제에서는 실행 시작과 동시에 Fragment B를 화면에 표시해 줄 것이므로, OnCreate 안에 넣어주었습니다.
코드에 대해서 자세히 살펴보면
Fragment frB = new Fragment(); // Fragment Instance 설정
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction(); // FragmentManager와 FragmentTransaction 얻어옴
fragmentTransaction.add(R.id.fragmentBorC, frB); // 위에서 만든 Fragment Instance를 붙여줌
fragmentTransaction.commit(); // 실행
add외에 replace 등 다양한 메서드 들이 있으며, fragment의 생명 주기와 함께 다루도록 하겠습니다.
일단 상기 코드를 통하여 frB를 추가시켜주고, 최종적으로 반영시키게됩니다.
이제 실행하여보면 상기 화면과 같이 Fragment B가 붙어있음을 볼 수 있습니다.