Hello! Thank you for this great library!
Production version crashes when fast scrolling up.
LegendList: 3.3.3
Expo: 55.0.26
RN: 0.83.6
List config:
<KeyboardAwareLegendList
data={messages}
extraData={{
// ...
}}
renderItem={renderItem}
keyExtractor={item => item.id}
getItemType={item => item.type}
onStartReached={onStartReached}
onStartReachedThreshold={1}
onEndReached={onEndReached}
onEndReachedThreshold={1}
onFirstVisibleItemChanged={onFirstVisibleItemChanged}
onLoad={onListLoad}
ref={listRef}
showsVerticalScrollIndicator={isWeb()}
style={styles.list}
estimatedItemSize={props.room.type === 'ClassicText' ? 20 : 50}
maintainScrollAtEnd={true}
maintainVisibleContentPosition={{
data: true,
size: true,
shouldRestorePosition: (item) => item !== LIST_HEADER_DUMMY_MESSAGE,
}}
maintainScrollAtEndThreshold={0.2}
alignItemsAtEnd={true}
initialScrollIndex={initialScrollIndex}
initialScrollAtEnd={!initialScrollIndex}
recycleItems={true}
/>
Error:
07-27 01:34:48.792 11753 11753 E AndroidRuntime: FATAL EXCEPTION: main
07-27 01:34:48.792 11753 11753 E AndroidRuntime: Process: xxx, PID: 11753
07-27 01:34:48.792 11753 11753 E AndroidRuntime: java.lang.NullPointerException: Attempt to read from field 'int android.view.View.mViewFlags' on a null object reference in method 'void android.view.ViewGroup.dispatchDraw(android.graphics.Canvas)'
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4316)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at com.facebook.react.views.view.ReactViewGroup.dispatchDraw(ReactViewGroup.kt:914)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.draw(View.java:23911)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at com.facebook.react.views.view.ReactViewGroup.draw(ReactViewGroup.kt:906)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22775)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.View.updateDisplayListIfDirty(View.java:22731)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:694)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:700)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:798)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewRootImpl.draw(ViewRootImpl.java:4965)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4669)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3840)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2483)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9340)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1429)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1438)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:1037)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:965)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1412)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:958)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:205)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.os.Looper.loop(Looper.java:294)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:8223)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
07-27 01:34:48.792 11753 11753 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:977)
Hello! Thank you for this great library!
Production version crashes when fast scrolling up.
LegendList: 3.3.3
Expo: 55.0.26
RN: 0.83.6
List config:
Error: