【问题标题】:React native infinity view pager反应本机无限视图寻呼机
【发布时间】:2017-03-18 11:23:49
【问题描述】:

我需要创建无限视图寻呼机来显示日历日,并为用户添加左右交换和更改日期的功能。

正如我在文档中看到的那样,视图寻呼机仅适用于预设数量的视图,并且还研究了一些开源包 - 找不到任何相关信息。

所以我的问题 - 我怎样才能为日历实现无限滑动(或者是否有可能)

【问题讨论】:

    标签: reactjs react-native calendar android-viewpager infinity


    【解决方案1】:

    我有一个用 VirtualizedList 制作的无限浏览器。它适用于 iOS 和 Android。

    import React, { Component } from 'react'
    import { View, Text, Dimensions, VirtualizedList } from 'react-native'
    
    const { width, height } = Dimensions.get('window')
    const startAtIndex = 5000
    const stupidList = new Array(startAtIndex * 2)
    
    class InfiniteViewPager extends Component {
      //only use if you want current page
      _onScrollEnd(e) {
        // const contentOffset = e.nativeEvent.contentOffset
        // const viewSize = e.nativeEvent.layoutMeasurement
        // // Divide the horizontal offset by the width of the view to see which page is visible
        // const pageNum = Math.floor(contentOffset.x / viewSize.width)
      }
      _renderPage(info) {
        const { index } = info
    
        return (
          <View style={{ width, height }}>
            <Text>
              {' '}{`index:${index}`}{' '}
            </Text>
          </View>
        )
      }
      render() {
        return (
          <VirtualizedList
            horizontal
            pagingEnabled
            initialNumToRender={3}
            getItemCount={data => data.length}
            data={stupidList}
            initialScrollIndex={startAtIndex}
            keyExtractor={(item, index) => index}
            getItemLayout={(data, index) => ({
              length: width,
              offset: width * index,
              index,
            })}
            maxToRenderPerBatch={1}
            windowSize={1}
            getItem={(data, index) => ({ index })}
            renderItem={this._renderPage}
            onMomentumScrollEnd={this._onScrollEnd}
          />
        )
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-18
      • 2018-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      相关资源
      最近更新 更多