ReactNative学习十二-React-Native-Viewpager
发布时间:2020-12-15 03:35:35 所属栏目:百科 来源:网络整理
导读:1.项目地址 https://github.com/race604/react-native-viewpager 2. Usage Run npm install react-native-viewpager --save Code like this: var ViewPager = require('react-native-viewpager'); ViewPager dataSource={this.state.dataSource} renderPage=
1.项目地址 https://github.com/race604/react-native-viewpager 2.Usage
var ViewPager = require('react-native-viewpager'); <ViewPager dataSource={this.state.dataSource} renderPage={this._renderPage}/>
More configuration
Page Transition Animation Controls
Example: var ViewPager = require('react-native-viewpager'); <ViewPager dataSource={this.state.dataSource} renderPage={this._renderPage} animation = {(animatedValue,toValue,gestureState) => { // Use the horizontal velocity of the swipe gesture // to affect the length of the transition so the faster you swipe // the faster the pages will transition var velocity = Math.abs(gestureState.vx); var baseDuration = 300; var duration = (velocity > 1) ? 1/velocity * baseDuration : baseDuration; return Animated.timing(animatedValue,{ toValue: toValue,duration: duration,easing: Easing.out(Easing.exp) }); }} />
3.实例代码
'use strict'; import React,{ Component,View,Image,Dimensions,StyleSheet } from 'react-native'; import ViewPager from 'react-native-viewpager'; var deviceWidth = Dimensions.get('window').width; const BANNER_IMGS = [ require('./images/banner/1.jpg'),require('./images/banner/2.jpg'),require('./images/banner/3.jpg'),require('./images/banner/4.jpg') ]; export default class MyViewPager extends React.Component { constructor(props) { super(props); // 用于构建DataSource对象 var dataSource = new ViewPager.DataSource({ pageHasChanged: (p1,p2) => p1 !== p2,}); // 实际的DataSources存放在state中 this.state = { dataSource: dataSource.cloneWithPages(BANNER_IMGS) } } _renderPage(data,pageID) { return ( <Image source={data} style={styles.page}/> ); } /** dataSource: 提供页面数据,renderPage: 用于渲染页面视图,autoPlay: 为true 将自动播放,isLoop: 为true支持循环播放,locked: 为true禁止触摸滚动,onChangePage: 页面变化的回调,renderPageIndicator: 渲染自定义的 ViewPager indicator. */ render() { return ( <View style={styles.container}> <ViewPager style={{height:130}} dataSource={this.state.dataSource} renderPage={this._renderPage} isLoop={true} autoPlay={true}/> </View> ); } } const styles = StyleSheet.create({ container: { flex: 1,flexDirection: 'row',alignItems: 'flex-start',paddingTop:5,paddingLeft:5,backgroundColor:'#999999',paddingRight:5,paddingBottom:5,},page: { width: deviceWidth,//设备宽(只是一种实现,此处多余) flex: 1,height: 130,resizeMode: 'stretch' },}); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- STM32F10X_XX宏定义的选择
- swift – 与Alamofire的多部分POST
- Missing Artifact Com.Oracle:ojdbc14:Jar:10.2.0.3.0解决办
- ruby-on-rails – 如何卸载Ruby on Rails并执行干净的安装?
- jquery Ajax实现Select动态添加数据
- c – 返回静态创建对象的内联函数
- c – 来自Windows原始输入的水平鼠标滚轮消息
- 在点击通过XML时使Android按钮更改背景
- ruby-on-rails – 如何在rake任务中渲染rabl视图?
- ajax – Long Poll和IE的XDomainRequest对象