![](https://img.haomeiwen.com/i1834458/e7e7e1c262eac774.png)
最近工作忙,搞得RN学学停停的,今天回来看了下别人开源的应用,看得一脸懵逼的,好吧,还是从最简单的入手。
这里通过ScrollView来实现一个引导页面的功能,init工程这些就不说了,直接看rn官网就可以了,首先为了方便获取屏幕的大小,我们来实现一个公共的类:
import React from 'react';
import Dimensions from 'Dimensions';
const Util = {
size: {
width: Dimensions.get('window').width,
height: Dimensions.get('window').height
},
};
export default Util;
然后我们再创建一个引导页面 guideView.js,目录如下:
![](https://img.haomeiwen.com/i1834458/71bef09f9e134876.png)
guide目录下存入资源文件,view目录下存放页面文件。
guideView 内容:
'use strict';
import React, {Component} from 'react';
import {
Image,
ScrollView,
StyleSheet,
Text,
} from 'react-native';
let image1 = require('../guide/guide_1.png');
let image2 = require('../guide/guide_2.png');
let image3 = require('../guide/guide_3.png');
import Util from './utils';
export default class extends Component {
constructor() {
super();
};
render() {
return (
<ScrollView
contentContainerStyle={styles.contentContainer}
bounces={false}
pagingEnabled={true}
horizontal={true}>
<Image source={image1} style={styles.backgroundImage} />
<Image source={image2} style={styles.backgroundImage} />
<Image source={image3} style={styles.backgroundImage} />
</ScrollView>
);
}
};
var styles = StyleSheet.create({
contentContainer: {
width: Util.size.width*3,
height: Util.size.height,
},
backgroundImage: {
width: Util.size.width,
height: Util.size.height,
},
});
这里需要注意下的就是contentView的内容的宽度应该对应你引导页面的宽度,比如这里有三张图,那应该就是屏幕宽度的三倍。
bounces 属性指的是第一张或最后一张是否有弹簧效果。
pagingEnabled 就是分页效果了。
最后在index.ios.js里面调用:
'use strict';
import React, { Component } from 'react';
import {
AppRegistry
} from 'react-native';
import Guide from './view/guideView';
export default class GuideView extends Component {
render() {
return (
<Guide />
);
}
}
AppRegistry.registerComponent('GuideView', () => GuideView);
最终效果:
![](https://img.haomeiwen.com/i1834458/67d9d2e139231ada.gif)
新手入门RN的同学们,千万不想相信 react native 中文网推荐的风耀的视频,买了vip入去,发现视频不更新,先不说视频质量怎么样,感觉照搬某课网的,这都可以忍,但天天推广点公益,也敢叫公益的公益。被骗得不要不要。
网友评论
1:控制手势滑动距离的参数,感觉 默认滑动到下一页,手势要滑动很长一段距离才能到下一页。想把手势滑动改短一点,让手势稍微左右扒拉一下,就产生反应到下一页或上一页
2:分页的 item 被挤压了,默认应该 一个item一页,现在是显示部分上一页的界面和部分本页面的界面,