Я использую ModalBottomSheet, открываю его на определенную высоту и отображаю список в lazyColumn, когда пользователь прокручивает список вниз, иногда лист также прокручивается вниз.
Я нужно, чтобы он открывался на определенную высоту, а затем не перемещался, пока пользователь не нажмет значок закрытия в дескрипторе перетаскивания.
var isClosable by remember { mutableStateOf(false) }
val previewSheetState = rememberModalBottomSheetState(
skipPartiallyExpanded = true,
confirmValueChange = { sheetValue ->
sheetValue != SheetValue.Hidden || isClosable
}
)
ModalBottomSheet(
onDismissRequest = {
scope.launch {
isClosable = true
onBottomSheetDismiss(false)
previewSheetState.hide()
}
},
sheetState = previewSheetState,
modifier = Modifier.fillMaxSize()
.padding(top = 80.dp), // Adjust this value as needed,
dragHandle = {
Column {
Row(
Modifier
.fillMaxWidth()
.background(Color.White)
.padding(start = 15.dp, top = 5.dp, end = 10.dp),
Arrangement.SpaceBetween,
Alignment.CenterVertically
) {
Text(
text = "Hello",
fontSize = 15.sp,
fontWeight = FontWeight.SemiBold
)
Icon(
imageVector = Icons.Default.Close,
contentDescription = "Close",
tint = Color.Black,
modifier = Modifier
.size(20.dp)
.clickable(
interactionSource = remember { MutableInteractionSource() },
indication = null
) {
scope.launch {
isClosable = true
onBottomSheetDismiss(false)
previewSheetState.hide()
}
}
)
}
HorizontalDivider(thickness = 1.dp, modifier = Modifier.fillMaxWidth())
}
},
containerColor = Color.Transparent
) {
//Sheet content displayed in LazyColumn
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... n-list-com