bhaskar
bhaskar

Reputation: 1080

App Crashing when swipping the HorizontalPagerIndicator in Jetpack Compose

I am using HorizontalPagerIndicator as below:

item {
                    Box {
                        HorizontalPager(
                            modifier = Modifier
                                .height(200.dp),
                            count = pages.size,
                            state = pagerState,
                            verticalAlignment = Alignment.Top
                        ) { position ->
                            ImagesScreen(media = pages[position])
                            HorizontalPagerIndicator(
                                pagerState = pagerState,
                                modifier = Modifier
                                    .align(
                                        Alignment.BottomCenter
                                    )
                                    .padding(bottom = 10.dp)
                            )

                        }

                    }
                }

This is inside LazyColumn. I am getting crash log as below when scrolling the HorizontalPager.

Process: om.namostate.jetpackroom, PID: 10655
                                                                                                    java.lang.IllegalStateException: Check failed.
                                                                                                        at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$precompose$1.dispose(SubcomposeLayout.kt:566)
                                                                                                        at androidx.compose.foundation.lazy.layout.LazyLayoutPrefetcher.cancelScheduledPrefetch(LazyLayoutPrefetcher.android.kt:274)
                                                                                                        at androidx.compose.foundation.lazy.layout.LazyLayoutPrefetchPolicy.cancelScheduledPrefetch(LazyLayoutPrefetchPolicy.kt:42)
                                                                                                        at androidx.compose.foundation.lazy.LazyListState.notifyPrefetch(LazyListState.kt:305)
                                                                                                        at androidx.compose.foundation.lazy.LazyListState.onScroll$foundation_release(LazyListState.kt:266)
                                                                                                        at androidx.compose.foundation.lazy.LazyListState$scrollableState$1.invoke(LazyListState.kt:150)
                                                                                                        at androidx.compose.foundation.lazy.LazyListState$scrollableState$1.invoke(LazyListState.kt:150)
                                                                                                        at androidx.compose.foundation.gestures.DefaultScrollableState$scrollScope$1.scrollBy(ScrollableState.kt:134)
                                                                                                        at androidx.compose.foundation.gestures.ScrollingLogic.dispatchScroll-f0eR0lY(Scrollable.kt:314)
                                                                                                        at androidx.compose.foundation.gestures.ScrollDraggableState.dragBy-Uv8p0NA(Scrollable.kt:389)
                                                                                                        at androidx.compose.foundation.gestures.DraggableKt$draggable$9$2$2.invokeSuspend(Draggable.kt:244)
                                                                                                        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
                                                                                                        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
                                                                                                        at androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch(AndroidUiDispatcher.android.kt:81)
                                                                                                        at androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch(AndroidUiDispatcher.android.kt:41)
                                                                                                        at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:68)
                                                                                                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1648)
                                                                                                        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1659)
                                                                                                        at android.view.Choreographer.doCallbacks(Choreographer.java:1129)
                                                                                                        at android.view.Choreographer.doFrame(Choreographer.java:1045)
                                                                                                        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1622)
                                                                                                        at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:230)
                                                                                                        at android.os.Looper.loop(Looper.java:319)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:8893)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

What might be the reason for the crash?

Upvotes: 0

Views: 205

Answers (1)

BenjyTec
BenjyTec

Reputation: 10777

HorizontalPager has been moved from Accompanist to the official Jetpack Compose. Please try to migrate it first and see if that already resolves the issue:

  1. Make sure you are using Compose 1.4.0+ before attempting to migrate to androidx.compose.foundation.pager.
  2. Change com.google.accompanist.pager.HorizontalPager to androidx.compose.foundation.pager.HorizontalPager
  3. Change count variable to pageCount.
  4. Change itemSpacing parameter to pageSpacing.
  5. Change any usages of rememberPagerState() to androidx.compose.foundation.pager.rememberPagerState()
  6. Run your changes on device and check to see if there are any differences.

Upvotes: 0

Related Questions