2021-07-12(월)
~ 2021-07-18(일)
DialogFragment
를 확장하는 클래스를 통해 다이얼로그를 생성할 수 있음onCreateDialog()
메소드를 재정의하여 다이얼로그를 생성함onCreateDialog()
메소드의 역할은 일반적인 프래그먼트가 onCreateView()
를 통해 루트 뷰를 생성하는 것과 유사함DialogFragment
는 자체적인 setOnCancelListener()
와 setOnDismissListener()
콜백을 지니므로 별도로 정의할 필요가 없음onCancel()
과 onDismiss()
를 오버라이드해야 함DialogFragment
는 Fragment
의 수명주기를 따르나, 추가적인 몇 개의 수명주기를 지님수명주기 | 내용 |
---|---|
onCreateDialog() | Dialog를 관리하고 표시할 프래그먼트를 제공하기 위해 재정의 |
onDismiss() | Dialog가 해제될 때 사용자 지정 로직(리소스 해제, 옵저버블 리소스 구독 취소 등)을 수행해야하는 경우 재정의 |
onCancel() | Dialog가 해제될 때 사용자 지정 로직을 수행해야하는 경우 재정의 |
DialogFragment
를 커스텀 뷰가 아닌 기본 Dialog
(ex. AlartDialog
, DatePickerDialog
등)와 함께 사용할 때, 이러한 Dialog
는 view
일 뿐만 아니라 자체적인 창을 지님onCreateView()
또는 onViewCreated()
를 재정의해서는 안됨onViewCreated()
의 경우엔, onCreateView()
를 재정의하고, onCreateView()
가 non-null view를 반환하는 경우에만 호출됨onCreateView()
를 재정의하여 DialogFragment
를 생성하고 다이얼로그를 보여줄 수 있음onCreateView()
를 재정의하고 view를 반환하면 자동으로 다이얼로그에 추가됨onCreateDialog()
를 재정의할 필요가 없음RadioGroup
과 유사한 ChipGroup
을 통해 여러 칩의 레이아웃과 행동 패턴을 관리할 수 있음
- References
https://material.io/components/chips