Hello, I encountered a bug when using a ReorderableRow that contains a nested ReorderableColumn with Modifier.weight.
When I reorder two items inside the ReorderableColumn and then tap the “Done” button, the items inside the ReorderableColumn behave incorrectly.
The library version I'm using is 3.0.0.
var list by remember {
mutableStateOf(
listOf(
CardItem.BigCard(1, items[0]),
CardItem.BigCard(2, items[1]),
CardItem.ColumnCard(3, listOf(items[2], items[3])),
)
)
}
var isEditable by remember { mutableStateOf(false) }
Column(
modifier = Modifier.fillMaxWidth()
.height(400.dp)
) {
if (isEditable) {
Button(
onClick = {
isEditable = false
}
) {
Text(text = "Done")
}
}
ReorderableRow(
modifier = Modifier
.fillMaxWidth()
.padding(8.dp),
list = list,
onSettle = { fromIndex, toIndex ->
},
horizontalArrangement = Arrangement.spacedBy(8.dp),
) { index, item, _ ->
key(item.id) {
if (item is CardItem.BigCard) {
ReorderableItem(Modifier.weight(1f)) {
Card(
modifier = Modifier.fillMaxSize()
.longPressDraggableHandle(
onDragStarted = {
isEditable = true
},
onDragStopped = {
},
),
) {
Text(text = item.item.text)
}
}
} else if (item is CardItem.ColumnCard) {
ReorderableItem(Modifier.weight(1f)) {
ReorderableColumn(
list = item.items,
onSettle = { fromIndex, toIndex ->
},
verticalArrangement = Arrangement.spacedBy(8.dp),
modifier = Modifier.fillMaxSize(),
) { index, columnItem, isDragging ->
key(columnItem.id) {
ReorderableItem(Modifier.weight(1f)) {
Card(
modifier = Modifier.fillMaxSize()
.longPressDraggableHandle(
onDragStarted = {
isEditable = true
},
onDragStopped = {
},
),
) {
Text(text = columnItem.text)
}
}
}
}
}
}
}
}
}
Hello, I encountered a bug when using a ReorderableRow that contains a nested ReorderableColumn with Modifier.weight.
When I reorder two items inside the ReorderableColumn and then tap the “Done” button, the items inside the ReorderableColumn behave incorrectly.
The library version I'm using is 3.0.0.
Screenrecorder-2025-11-17-13-57-32-239.mp4