-
[Jetpack Compose] Scaffold를 이용하여 Snackbar 띄우기카테고리 없음 2024. 6. 5. 09:36
사용법
우선 아래 구조처럼 Scaffold로 감싸줍니다.
(Scaffold는 여러가지 디자인을 제어하기 위한 컴포저블입니다.)
상태를 저장하기 위해 SnackbarHostState를 remember에 감싸서 생성해줍니다.
이후 Scaffold의 인자로 SnackbarHost를 넘겨주고 SnackbarHostState를 SnackbarHost의 인자로 넘겨줍니다.
이후 가장 중요한 Snackbar를 띄우는 방법인데
Snackbar를 띄우기 위해 SnackbarHostState#showSnackbar(String)를 이용합니다.
showSnackbar 함수는 suspend이기 때문에 CoroutineScope를 이용하여 그 안에서 돌려주면 끝입니다.
@Composable fun RegisterScreen { val coroutineScope = rememberCoroutineScope() val snackbarHostState = remember { SnackbarHostState() } Scaffold( snackbarHost = { SnackbarHost( hostState = snackbarHostState ) } ) { Button( onClick = { coroutineScope.launch { snackbarHostState.showSnackbar("메시지를 띄웠습니다!") } } ) { BaseText( text = "띄우기", fontSize = 17.sp ) } } }
정상적으로 표시되는 것을 볼 수 있습니다.