FragmentTransaction의 replace() 메소드를 통해 동적으로 Fragment 교체하기
교체하는 코드는 다음과 같다.
FragmentManager fragmentManager =
getFragmentManager();
FragmentTransaction fragTransaction =
fragManager.beginTransaction();
MyFragment mFrag = new MyFragment();
fragTransaction.add(R.id.layout, mFrag);
//아래 코드 실행되는 시점에
//MyFragment가 비로소 실행된다.
fragTransaction.commit();
☞ FragmentManager
⇒ Activity안에 있는 Fragment와 상호 작용 및 관리(Activity에 추가, 교체...)를 위한 클래스
이 클래스의 객체는 Activity의 메소드 중 getFragmentManager()를 통해 얻을 수 있다.
☞ fragTransaction.add(R.id.layout, mFrag);
⇒ 새로운 Fragment인 mFrag를 R.id.layout이라는 곳에 추가하는 기능.
R.id.layout이 들어있는 xml파일이 다음과 같다면
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/layout"
android:orientation="vertical" >
<Button
android:id="@+id/btn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="확 인"
android:onClick="mClick"
/>
</LinearLayout>
fragTransaction.add(R.id.layout, mFrag)과 유사한 것이 replace() 메소드이다.
아래 코드는 R.id.content_frame에 있는 기존의 Fragment를 제거한 후
두 번째 매개인자인 fragment를 R.id.content_frame에 집어 넣는 기능이다.
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
'Android' 카테고리의 다른 글
안드로이드 6.0에서 Apche의 HttpClient가 import안되는 문제 해결 (2) | 2015.10.28 |
---|---|
안드로이드에서 외부 글꼴(font) 적용하기 (0) | 2015.10.27 |
Fragment 사용을 위한 개념 정리 (0) | 2015.10.20 |
RectF와 Path로 그리는 그림 (0) | 2015.10.20 |
Intent와 PendingIntent 이해하기 (1) | 2015.10.20 |