【发布时间】:2017-03-18 11:23:49
【问题描述】:
我需要创建无限视图寻呼机来显示日历日,并为用户添加左右交换和更改日期的功能。
正如我在文档中看到的那样,视图寻呼机仅适用于预设数量的视图,并且还研究了一些开源包 - 找不到任何相关信息。
所以我的问题 - 我怎样才能为日历实现无限滑动(或者是否有可能)?
【问题讨论】:
标签: reactjs react-native calendar android-viewpager infinity
我需要创建无限视图寻呼机来显示日历日,并为用户添加左右交换和更改日期的功能。
正如我在文档中看到的那样,视图寻呼机仅适用于预设数量的视图,并且还研究了一些开源包 - 找不到任何相关信息。
所以我的问题 - 我怎样才能为日历实现无限滑动(或者是否有可能)?
【问题讨论】:
标签: reactjs react-native calendar android-viewpager infinity
我有一个用 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}
/>
)
}
}
【讨论】: