Open and Close Jetpack Compose BottomSheet with a Button

: ) YOUNG·2024년 6월 21일
1

안드로이드

목록 보기
21/30
post-thumbnail
post-custom-banner

BottomSheetScaffold 드래그 핸들 버튼, 외부 버튼으로 열고 닫기

  • BottomSheetScaffold Button
  • BottomSheetScaffoldsheetDragHandle이 바 형태의 아이콘이 들어가는 자리,



코드


    /* BottomSheet*/
    val scaffoldState = rememberBottomSheetScaffoldState()
    val bottomSheetScope = rememberCoroutineScope()
    var bottomSheetStateOrdinal by remember { mutableIntStateOf(scaffoldState.bottomSheetState.currentValue.ordinal) }
    
    

	Surface(modifier = Modifier.fillMaxSize().background(White)) {
        BottomSheetScaffold(
            scaffoldState = scaffoldState,
            sheetPeekHeight = 120.dp,
            sheetContainerColor = Color.White,

            sheetContent = {...}) {
            
			Column(
                modifier = Modifier.fillMaxSize().background(White).padding(defaultPadding),
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center
            ) {
                Button(modifier = Modifier.height(40.dp).wrapContentWidth(), onClick = {
                    bottomSheetScope.launch {
                        bottomSheetStateOrdinal =
                            scaffoldState.bottomSheetState.currentValue.ordinal
                        if (bottomSheetStateOrdinal == 1) {
                            scaffoldState.bottomSheetState.partialExpand()
                        } else {
                            scaffoldState.bottomSheetState.expand()
                        }
                    }
                }) {
                    Text(
                        "바텀 시트 ${
                            if (bottomSheetStateOrdinal == 1) "닫기" else {
                                "열기"
                            }
                        }  "
                    )
                }
            }
            
	} // End of BottomSheetScaffold {}
} // End of Surface {}



결과

post-custom-banner

0개의 댓글