
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을 통해 여러 칩의 레이아웃과 행동 패턴을 관리할 수 있음
.png)
.png)
.png)
- References
https://material.io/components/chips