在 android compose 中使用SwipeToDismiss和使用的正确方法是什么?LazyColumnalpha09
我的做法:
LazyColumn(
modifier = Modifier.padding(6.dp),
verticalArrangement = Arrangement.spacedBy(6.dp),
) {
items(items = items) {
TrackedActivityRecord(it.activity, it.record, scaffoldState)
}
}
Run Code Online (Sandbox Code Playgroud)
@OptIn(ExperimentalMaterialApi::class)
@Composable
fun TrackedActivityRecord(
activity: TrackedActivity,
record: TrackedActivityRecord,
scaffoldState: ScaffoldState,
vm: TimelineVM = viewModel()
){
val dismissState = rememberDismissState()
if (dismissState.value != DismissValue.Default){
LaunchedEffect(subject = activity){
val deleted = scaffoldState.snackbarHostState.showSnackbar("Awesome", "do it")
if (deleted == SnackbarResult.Dismissed){
vm.rep.deleteRecordById(activity.id, record.id)
}
dismissState.snapTo(DismissValue.Default)
}
}
SwipeToDismiss(
state = dismissState,
background = {
Box(Modifier.size(20.dp). background(Color.Red))
},
) …Run Code Online (Sandbox Code Playgroud)