I want to delete 1 column from Room Database by using swipe to delete in compose

49 Views Asked by At

I am trying to delete one column at a time but my lazy column is deleting 2 or 3 columns together. I am trying to implement swipe-to-dismiss in my code. here is my code

  LazyColumn {
                itemsIndexed(dataList){position, item ->

                    val dismissState = rememberDismissState()

                    if (dismissState.isDismissed(direction = DismissDirection.EndToStart)){
                        model.deleteTodo(dataList[position])
                    }


                    SwipeToDismiss(state =dismissState,
                       modifier = Modifier.padding(vertical = 4.dp),
                        directions = setOf(DismissDirection.EndToStart),
                        background = {
                            val direction = dismissState.dismissDirection ?: return@SwipeToDismiss

                            val color by animateColorAsState(
                                when(dismissState.targetValue){
                                    DismissValue.Default -> Color.LightGray
                                    DismissValue.DismissedToStart -> Color.Red
                                    DismissValue.DismissedToEnd -> Color.Green
                                }
                            )

                            Box(Modifier.fillMaxSize().background(color).padding(horizontal = 20.dp),
                                contentAlignment = Alignment.CenterEnd
                            ){
                                Icon(
                                    Icons.Default.Delete,
                                    contentDescription = "Localized Description",
                                    modifier = Modifier.scale(0.75f)
                                )
                            }
                        },
                        dismissContent = {
                            todoItems( data =item )


                        }
                    )
                }
            }

i have tried

model.deleteTodo(datalist[poisition] or model.deleteTodo(item)

in dismiss content as well and dismiss state as well but the results are not expected

0

There are 0 best solutions below