aclassen / ComposeReorderable

Enables reordering by drag and drop in Jetpack Compose (Desktop) LazyList & LazyGrid.
Apache License 2.0
821 stars 86 forks source link

Not working after update to compose 1.6.0-beta02 and crashes the app. #281

Closed Monabr closed 9 months ago

Monabr commented 9 months ago

Hi. Here is the stack trace:

java.lang.IllegalStateException: replace() called on item that was not placed
    at androidx.compose.ui.node.LayoutNodeLayoutDelegate$LookaheadPassDelegate.replace(LayoutNodeLayoutDelegate.kt:1580)
    at androidx.compose.ui.node.LayoutNode.lookaheadReplace$ui_release(LayoutNode.kt:923)
    at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:515)
    at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded$default(MeasureAndLayoutDelegate.kt:486)
    at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:377)
    at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(AndroidComposeView.android.kt:972)
    at androidx.compose.ui.platform.AndroidComposeView.handleMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1493)
    at androidx.compose.ui.platform.AndroidComposeView.dispatchTouchEvent(AndroidComposeView.android.kt:1467)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3188)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2836)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3188)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2836)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3188)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2836)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3188)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2836)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3188)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2836)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3188)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2836)
    at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:508)
    at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1875)
    at android.app.Activity.dispatchTouchEvent(Activity.java:4241)
    at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:70)
    at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:466)
    at android.view.View.dispatchPointerEvent(View.java:14768)
    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6353)
    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6144)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5625)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5682)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5648)
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5800)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5656)
    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5857)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5629)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5682)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5648)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5656)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5629)
    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8522)
    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8468)
    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8419)
    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8668)
    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:282)
    at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
    at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:234)
    at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:8613)
    at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:8707)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:975)
    at android.view.Choreographer.doCallbacks(Choreographer.java:799)
    at android.view.Choreographer.doFrame(Choreographer.java:727)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:960)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:236)
    at android.app.ActivityThread.main(ActivityThread.java:8057)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
Monabr commented 9 months ago

@aclassen Hi. Please fix it, This makes library unusable!

Monabr commented 9 months ago

Turns out it's compose fault with layouts.