recyclerlistview navigate back to 1st page when I try to scroll

46 views Asked by At

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>
0

There are 0 answers