오늘 먹은 것: 피자 한 Fragment

김태영·2024년 7월 17일
0

TIL

목록 보기
52/70
post-thumbnail

오늘 공부한 것

- 알고리즘 호텔 대실 풀이
- 스탠다드반 실시간 강의
- 프래그먼트 복습

개요

맨날 프래그먼트를 사용할 때 뷰페이저와 같이 쓰다보니 뷰페이저 없는 프래그먼트는 사용할 수 없는 줄 알았다. 그러다 뷰페이저 말고도 다른 방법이 있다는 것을 알게되어 정리해보려고 한다.

xml

먼저 프래그먼트가 차지할 공간을 지정해줘야 한다. fragment 태그, FrameLayout, FragmentContainerView 3가지 방법이 있지만 안드로이드에서는 마지막 FragmentContainerView의 사용을 적극 권장하고 있다.

<androidx.fragment.app.FragmentContainerView
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

FragmentContainerView는 FrameLayout을 상속 받아 프래그먼트 관련 작업들을 편하게 할 수 있는 추가적인 기능들을 포함하고 있기 때문에 사용하지 않을 이유가 없다.

프래그먼트 관리

프래그먼트는 액티비티의 일부분이며 특정 조건에 따라 표시되는 프래그먼트가 바뀌거나 추가되어야 하는데, 이 작업을 Transaction을 통해 다룰 수 있다.

val mainFragment = MainFragment()
parentFragmentManager.commit {
	// 걍 무조건 써야한다.
    // 성능이 좋아진다!
    setReorderingAllowed(true)
    // replace 말고도 add, remove, show, hide도 사용가능하다.
    replace(R.id.fragment_container, mainFragment)
    // 사용자가 back 버튼을 눌렀을 때 이전의 프래그먼트를 기억하도록 한다.
    // name을 지정해줄 수 있지만, 보통 null로 많이 쓰인다.
    addToBackStack(null)
}
profile
화이팅

0개의 댓글