- Fragment를 위해 특별히 설계된 레이아웃으로 androidx.fragment1.2.0에 도입되었습니다.
- FrameLayout을 확장하여 프래그먼트 트랜잭션을 안정적으로 처리할 수 있고, 프래그먼트 동작을 조정할 수 있는 추가 기능도 있습니다.
- FragmentContainerView는 activity xml layout 안에 설정되어 Fragment의 container로 사용되어야 합니다.
kotlin.Any ↳ android.view.View ↳ android.view.ViewGroup ↳ android.widget.FrameLayout ↳ androidx.fragment.app.FragmentContainerView |
||||
FragmentContainerView는 Fragment 사용 사례 이외의 다른 ViewGroup (FrameLayout, LinearLayout 등)을 대체하는 용도로 사용해서는 안됩니다.
FragmentContainerView는 android:name attribute를 사용하여 프래그먼트를 추가하는데 사용할 수도 있으며, 일회성 작업을 수행합니다. FragmentContainerView는 Fragment의 Fragment#onCreateView(LayoutInflater, ViewGroup, Bundle)에서 반환된 뷰만 허용합니다. 다른 뷰를 추가하면 IllegalStateException이 발생할 것입니다.
레이아웃 애니메이션과 트랜잭션은 API 17 이상에서 비활성화되고, FragmentTransaction#setCustomAnimations(int, int, int, int)
에서 애니메이션을 수행해야합니다. animateLayoutChanges가 true이거나 setLayoutTransition(LayoutTransition)
가 직접 호출되면 UnsupportedOperationException이 발생합니다. exit 애니메이션을 사용하는 프래그먼트는 다른 프래그먼트보다 더 빠르게 그려지고, 기존 프래그먼트가 뷰 위에 표시되지 않습니다.
[참고]
https://developer.android.com/reference/kotlin/androidx/fragment/app/FragmentContainerView
FragmentContainerView | Android 개발자 | Android Developers
developer.android.com