hyochan / react-native-masonry-list

The Masonry List implementation which has similar implementation as the `FlatList` in React Native
MIT License
393 stars 55 forks source link

Fix for onEndReached not getting called #46

Closed Vin-Xi closed 1 year ago

Vin-Xi commented 1 year ago

Description

This PR focuses on fixing onEndReached not getting called. The reason why it sometimes doesn't get called is because of this particular line

layoutMeasurement.height + contentOffset.y >= contentSize.height - paddingToBottom

Where both sides sometimes evaluate to a 6 decimal place number and because of three different measurements (height,offset, total height), comparing them introduces inaccuracy. For example if the 6th decimal point is 0 on left hand side and its 1 on right hand side. Then even if we are at the end, this function will not get called because the fore mentioned line will evaluate to false. To fix this, I have removed the decimal points from the left hand side by using Math.Ceil. This will call the function by removing uncertainties of the decimal points.

Related Issues

N/A

Tests

N/A

Checklist

Before you create this PR confirms that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

hotaryuzaki commented 1 year ago

which version is it?? i use 1.4.1 and still have an issue in android, sometimes onEndReached not called.

satyam16998 commented 1 year ago

@hyochan onEndReached is not called at all in any condition. Please check.