안녕하세요.
궁금한게 생겨서 이렇게 선배님들을 찾아뵙니다.
다름이 아니라 프래그먼트에 대해서 궁금한점이 생겼습니다.
처음 프래그먼트를 다뤄보는데요.
매우 신기하고 유용하긴 합니다..
그런데 프래그먼트 전환에서 좀 이상한게 있어서요.
일단 XMl 코드 먼저 보여드립니다.
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<fragment
android:id="@+id/fragment1"
android:name="com.example.fragmentchange.FragmentOne"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
위와같이 xml에서 fragment를 하나 두었는데요.
저 프래그먼트를 전환하고자 메인엑티비티에서 아래와 같이 처리하였습니다.
전환할 프래그먼트원 엑티비티, 프래그먼트투 엑티비티는 준비 되어 있는 상황입니다.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button)findViewById(R.id.button1);
btn2 = (Button)findViewById(R.id.button2);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
FragmentOne f1 = new FragmentOne();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment1, f1);
ft.commit();
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
FragmentTwo f2 = new FragmentTwo();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment1, f2);
ft.commit();
}
});
}
위와 같이 전환을 시도하였는데,
기존에 있는 XML상에서 추가했던 프래그먼트는 그대로 존재하면서
한개가 더 생기는 식으로 중복생성이 되는데요.
제가 하고싶은것은 XML상에서 선언한 Fragment의 대상 name을 변경하고 싶은데요.
android:name="com.example.fragmentchange.FragmentOne" 이부분이요.
이부분이 대상이 되는 프래그먼트의 네임을 설정한 부분인거 같은데
저는 이부분을 바꿔보고 싶습니다.
어떻게 해야될까요?
//생각해보니 XML에서 Fragment를 추가하나 코드상에서 Fragment를 추가하나 똑같은거 같네요;;
동적으로 프래그먼트가 전환되게 처리하려면 코드상에서 프래그먼트 트랜섹션을 이용해야하는거 같은데
제가 이해한게 맞는지 모르겠네요;;
저는 XML에서 만든 프래그먼트의 name속성을 자꾸 바꿔볼려고 햇엇는데 이런 개념으로 접근하면 안되는거엿나;;