when try I to scroll the recyclerlist as it reaches the 2nd page recycler gets a refresh and again focus move to the very 1st page .
I know its happening because of handleMomentumScrollEnd method, but i need this function as well as I have to store the last read page by user as setSelectedPageIndex(selectedPageIndex); triggered all this problem occurs
const handleMomentumScrollEnd = (event) => {
const offsetX = event.nativeEvent.contentOffset.x;
const pageIndex = Math.round(offsetX / Dimensions.get('window').width);
const selectedPageIndex = Math.max(0, pageIndex);
setSelectedPageIndex(selectedPageIndex);
};
const RecyclerView = React.memo(({ data, renderContentPages}) => {
const layoutProvider = new LayoutProvider(
index => 1, // Only one type of item in this case
(_, dim) => {
dim.width = Dimensions.get('window').width;
dim.height = Dimensions.get('window').height-50;
}
);
layoutProvider.shouldRefreshWithAnchoring = false;
const dataProvider = new DataProvider((r1, r2) => r1 !== r2).cloneWithRows(data);
const rowRenderer = useCallback((_, item) => renderContentPages(item), [renderContentPages]);
return (
<RecyclerListView
layoutProvider={layoutProvider}
dataProvider={dataProvider}
rowRenderer={rowRenderer}
onScroll={handleMomentumScrollEnd}
isHorizontal={true}
scrollViewProps={{
showsHorizontalScrollIndicator: false,
}}
/>
);
return (
<View style={[{backgroundColor:backgroundColorBookRead,flex:1}]}>
<View style={[{ backgroundColor: backgroundColorBookRead, flex: 1 }]}>
<RecyclerView
data={chaptersData}
renderContentPages={renderContentPages}
handleMomentumScrollEnd={handleMomentumScrollEnd}
/>
</View>
</View>