[Compose] Dialog Dismiss

kk_jang93·2024년 5월 28일
0

Compose 에서 Dialog 를 Dismiss 하는법을 알아보자 !

기본적으로 Dialog의 구성은 위 사진과 같다.
onDismissRequest() 를 람다 함수 , properties는 Dialog의 세부 속성을 변경할때, 마지막으로 Dialog에 보여질 화면부분은 Content에 기입하는것이다.

적용된 예시를 함께 보자

var openDialog by remember {
     mutableStateOf(false)
}
  • openDialog 라는 mutableStateOf 변수로 만들어서 true/false로 show/hide 개념으로 사용합니다.
  • 여기에 사용된 openDialog 네이밍은 임의로 지은 변수명이므로 어떠한것으로도 지어도 무방하다.

  • 최초의 실행했을때 openDialog가 false 이므로 기기알림이 꺼져있으면 Dialog 를 보여주게 처리하였다.
    Dialog 에서 "닫기" 버튼을 통하여 Dismiss 상태를 체크하고, 닫아야한다.
  • 클릭시에 openDialog 를 true 로 변경 한다. 이는 mutableStateOf remember로 인하여 true 로 저장되고 기억되기 때문에 앞서 선행한 if문을 거치지 않게 된다.
    

Tip. 함께 알아두면 좋은 정보

→ dismissOnBackPress
back 버튼 처리로 true 를 주면 back 버튼 누를경우 onDismissRequest 가 호출됨.

→ dismissOnClickOutside
Dialog 외부 클릭시 처리로 true를 주면 Dialog 외부 클릭시 onDismissRequest 가 호출됨.

→ securePolicy
SecureFlagPolicy.SecureOn 를 사용하면 화면 캡쳐기능이 동작안함.

[참고]
https://velog.io/@zinkiki/AndroidKotlin-Compose%EB%A1%9C-%EB%8B%A4%EC%9D%B4%EC%96%BC%EB%A1%9C%EA%B7%B8-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0

profile
앱개발을 사랑하는 개발자

0개의 댓글