Отключить пролистывание от начала до конца SwipeToDismiss внутри SwipeToDismissBox с износом в Compose ⇐ Android
Отключить пролистывание от начала до конца SwipeToDismiss внутри SwipeToDismissBox с износом в Compose
У меня есть SwipeToDismiss вот так:
@OptIn(ExperimentalMaterialApi::class) @Композитный личное развлечение SwipeToDeleteCard( onClick: (courseUuid: String) -> Единица измерения, onSwipeToDelete: (courseUuid: String) -> Единица измерения, мояМодель: МояМодель, ) { SwipeToDismiss( состояние = RememberDismissState( подтверждатьStateChange = { отклонитьValue -> если (dismissValue == DismissValue.DismissedToStart) { onSwipeToDelete(course.uuid) ЛОЖЬ } еще { истинный } } ), направления = setOf(EndToStart), фон = { Коробка( модификатор = Модификатор .fillMaxSize() ) { Икона( художник = PainterResource(id = R.drawable.trash), оттенок = Цвет.Не указано, contentDescription = "Удалить", модификатор = Модификатор .size(24.dp) .align(Alignment.CenterEnd) ) } }, отклонитьСодержимое = { Моя карта( мояМодель = мояМодель, onClick = onClick ) } ) } Все мои составные элементы находятся в SwipeToDismissBox (чтобы сделать возможным обратное пролистывание от начала до конца):
SwipeToDismissBox( onDismissed = onDismiss, модификатор = Модификатор.fillMaxSize() ) { isBackground -> если (isBackground) { Коробка( модификатор = Модификатор .fillMaxSize() .background(MaterialTheme.colors.background) ) return@SwipeToDismissBox } Строительные леса( времяТекст = времяТекст, контент = контент, модификатор = Модификатор .fillMaxSize() .padding(горизонтальный = горизонтальныйPadding) ) } Проблема, с которой я столкнулся, заключается в том, что невозможно провести пальцем по моей карте от начала до конца, поскольку пролистывание контролируется SwipeToDismiss. Я хотел бы включить на своей карте пролистывание только от конца к началу, чтобы удалить его, при этом зарезервировав пролистывание от начала до конца для возврата к предыдущему экрану с помощью SwipeToDismissBox. Возможно ли это?
Любые предложения о том, как добиться такого поведения, будут приняты с благодарностью. Спасибо!
У меня есть SwipeToDismiss вот так:
@OptIn(ExperimentalMaterialApi::class) @Композитный личное развлечение SwipeToDeleteCard( onClick: (courseUuid: String) -> Единица измерения, onSwipeToDelete: (courseUuid: String) -> Единица измерения, мояМодель: МояМодель, ) { SwipeToDismiss( состояние = RememberDismissState( подтверждатьStateChange = { отклонитьValue -> если (dismissValue == DismissValue.DismissedToStart) { onSwipeToDelete(course.uuid) ЛОЖЬ } еще { истинный } } ), направления = setOf(EndToStart), фон = { Коробка( модификатор = Модификатор .fillMaxSize() ) { Икона( художник = PainterResource(id = R.drawable.trash), оттенок = Цвет.Не указано, contentDescription = "Удалить", модификатор = Модификатор .size(24.dp) .align(Alignment.CenterEnd) ) } }, отклонитьСодержимое = { Моя карта( мояМодель = мояМодель, onClick = onClick ) } ) } Все мои составные элементы находятся в SwipeToDismissBox (чтобы сделать возможным обратное пролистывание от начала до конца):
SwipeToDismissBox( onDismissed = onDismiss, модификатор = Модификатор.fillMaxSize() ) { isBackground -> если (isBackground) { Коробка( модификатор = Модификатор .fillMaxSize() .background(MaterialTheme.colors.background) ) return@SwipeToDismissBox } Строительные леса( времяТекст = времяТекст, контент = контент, модификатор = Модификатор .fillMaxSize() .padding(горизонтальный = горизонтальныйPadding) ) } Проблема, с которой я столкнулся, заключается в том, что невозможно провести пальцем по моей карте от начала до конца, поскольку пролистывание контролируется SwipeToDismiss. Я хотел бы включить на своей карте пролистывание только от конца к началу, чтобы удалить его, при этом зарезервировав пролистывание от начала до конца для возврата к предыдущему экрану с помощью SwipeToDismissBox. Возможно ли это?
Любые предложения о том, как добиться такого поведения, будут приняты с благодарностью. Спасибо!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение