reactjs - react native 无限 View 寻呼机

标签 reactjs react-native calendar android-viewpager infinity

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

正如我在文档中看到的, View 分页器仅适用于预设数量的 View ,并且还研究了一些开源包 - 找不到任何相关信息。

所以我的问题 - 如何实现日历的无限滑动(或者是否可能)

最佳答案

我有一个用 VirtualizedList 制作的无限 View 页面。它适用于 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}
      />
    )
  }
}

关于reactjs - react native 无限 View 寻呼机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42873720/

相关文章:

javascript - showCloseButton 未显示react-bootstrap-sweetalert

java - 如何使用 TimePicker 获取今天的日期/时间?

javascript - 如何在 wdCalender 的添加事件中设置自定义表单?

reactjs - 有没有一种方法可以将使用 ES6 类的 React 组件重置为其初始状态?

javascript - react /JavaScript : Using React spread to performing 2 changes(at the same time) on array

firebase - 在 React native 应用程序中实现 Firebase Crashlytics - Android

reactjs - React Native - NavigationActions.navigate() 未从 redux 内导航

asp.net - 使用 ASP.NET 日历控件时如何隐藏周末?

reactjs - Nginx:在同一服务器上为多个 React 应用程序提供服务

reactjs - React-Native 中的 z-index 问题