Android Studio

android 액티비티에서 프래그먼트로 이동

i-moo 2017. 3. 2. 10:08
반응형

Tab바를 이용하지 않고 ImageButton을 이용하여 위에 top부분을 잡아주었습니다.

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<ImageButton
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@mipmap/btn_gallery_on"
android:id="@+id/myGalleryBtn"
android:layout_weight="1"
android:background="@color/colorWhite"/>

<ImageButton
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@mipmap/btn_profile_off"
android:id="@+id/myProfileBtn"
android:layout_weight="1"
android:background="@color/colorWhite"/>

<ImageButton
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@mipmap/btn_review_off"
android:id="@+id/myReviewBtn"
android:layout_weight="1"
android:background="@color/colorWhite"/>

</LinearLayout>

top부분에 세가지 버튼을 놓고 나머지 부분을 framelayout로 채웠습니다.

<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />

이미지 버튼을 클릭시 framelayout부분만 바뀌도록 하기 위해 replaceFragment함수를 만들었습니다.

// 프레그 먼트로 이동
public void replaceFragment(Fragment fragment){
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();
}

버튼마다 이벤트를 주어 클릭시 함수가 호출 되도록 하였습니다.

myGalleryBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
replaceFragment(myViewFragment);
}
});
myProfileBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
replaceFragment(myProfileFragment);
}
});
myReviewBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
replaceFragment(myReviewFragment);
}
});


반응형