Android Compose: почему данные, к которым осуществляется обратный вызов DragGesturesAfterLongPress, не являются последниAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android Compose: почему данные, к которым осуществляется обратный вызов DragGesturesAfterLongPress, не являются последни

Сообщение Anonymous »

Я настроил функцию модификатора:

Код: Выделить всё

fun Modifier.gridDragHandler(
onDragStart: (key: Any) -> Boolean,
...
) = pointerInput(Unit) {
detectDragGesturesAfterLongPress(
onDragStart = { offset ->
...
onDragStart(key)
...
}
...
)
}
Затем используйте эту функцию в LazyVerticalGrid:

Код: Выделить всё

@Composable
fun SelectableLazyVerticalGrid(
itemList: List,
...
) {
val list = remember { mutableStateListOf() }

LaunchedEffect(itemList) {
list.clear()
list.addAll(itemList)
}

LazyVerticalGrid(
modifier = Modifier.gridDragHandler(
onDragStart = {
println("itemList.size=${itemList.size}")
println("list.size=${list.size}")
},
...
),
...
) {
...
}
}
Я обнаружил, что itemList, полученный в onDragStart, представляет собой данные предыдущей реорганизации, а не самые последние данные (данные в списке правильные и актуальные).
Почему itemList нельзя напрямую использовать в обратном вызове onDragStart?

Подробнее здесь: https://stackoverflow.com/questions/792 ... turesafter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»