diff --git a/packages/virtualized-lists/Lists/VirtualizedList.js b/packages/virtualized-lists/Lists/VirtualizedList.js index f9d3a5aef7792c..e5ac5773d4d323 100644 --- a/packages/virtualized-lists/Lists/VirtualizedList.js +++ b/packages/virtualized-lists/Lists/VirtualizedList.js @@ -1668,10 +1668,7 @@ class VirtualizedList extends StateSafePureComponent { const timestamp = e.timeStamp; let visibleLength = this._selectLength(e.nativeEvent.layoutMeasurement); let contentLength = this._selectLength(e.nativeEvent.contentSize); - let offset = this._offsetFromScrollEvent( - e.nativeEvent.contentOffset, - e.nativeEvent.contentSize, - ); + let offset = this._offsetFromScrollEvent(e); let dOffset = offset - this._scrollMetrics.offset; if (this._isNestedWithSameOrientation()) { @@ -1735,24 +1732,18 @@ class VirtualizedList extends StateSafePureComponent { this._scheduleCellsToRenderUpdate(); }; - _offsetFromScrollEvent( - contentOffset: $ReadOnly<{ - x: number, - y: number, - ... - }>, - contentSize: $ReadOnly<{ - width: number, - height: number, - ... - }>, - ): number { + _offsetFromScrollEvent(e: ScrollEvent): number { + const {contentOffset, contentSize, layoutMeasurement} = e.nativeEvent; const {horizontal, rtl} = this._orientation(); if (Platform.OS === 'ios' || !(horizontal && rtl)) { return this._selectOffset(contentOffset); } - return this._selectLength(contentSize) - this._selectOffset(contentOffset); + return ( + this._selectLength(contentSize) - + (this._selectOffset(contentOffset) + + this._selectLength(layoutMeasurement)) + ); } _scheduleCellsToRenderUpdate(opts?: {allowImmediateExecution?: boolean}) {