react - native 학습 의 scrollView
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
Image,
ScrollView
} from 'react-native';
var Images = require('./images.json');
import Dimensions from 'Dimensions';
import TimerMixin from 'react-timer-mixin';
var width = Dimensions.get('window').width;
var ScrollViewProject = React.createClass({
mixins:[TimerMixin],
getInitialState() {
return {
currentPage:0
}
},
render() {
return(
{/* */}
this.changeIndicators(e)}
onScrollBeginDrag={this.onScrollBeginDrag}
onScrollEndDrag={this.onScrollEndDrag}
>
{this.renderAllImage()}
{/* */}
{this.renderIndicator()}
);
},
componentDidMount() {
// this.setInterval(
// ()=>console.log('testTimeout'),1000
// );
//
this.startTimer();
},
renderAllImage() {
var allImgs = [];
var imgData = Images.data;
var srcs = [
require("./imgs/a.jpg"),
require("./imgs/b.jpg"),
require("./imgs/c.jpg"),
require("./imgs/d.jpg"),
require("./imgs/e.jpg")
];
for(let i=0;i
)
}
return allImgs;
},
renderIndicator() {
var indicators = [];
for(let i=0;i<5;i++) {
let style = (i==this.state.currentPage)?{color:'#ffff00'}:{color:'#ffffff'}
indicators.push(
•
)
}
return indicators;
},
changeIndicators(e) {
var offsetX = e.nativeEvent.contentOffset.x;
this.setState({
currentPage:Math.floor(offsetX/width)
})
},
//
startTimer() {
// 1. scrollView
var scrollView = this.refs.scrollView;
// 2.
this.timer = this.setInterval(()=>{
// console.log('haha');
// 2.1
var activePage;
// 2.2
if(this.state.currentPage+1 >=5) activePage=0;
else activePage=this.state.currentPage+1;
// 2.3
this.setState({
currentPage:activePage
})
// 2.4 scroll
var offsetX = activePage * width;
scrollView.scrollResponderScrollTo({x:offsetX,y:0,animated:true});
},1000);
},
//
onScrollBeginDrag() {
this.clearInterval(this.timer);
},
//
onScrollEndDrag() {
this.startTimer();
}
});
const styles = StyleSheet.create({
container: {
// flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
// marginTop:20
},
indicators: {
flexDirection:'row',
backgroundColor:'rgba(0,0,0,0.1)',
height:30,
width:width,
alignItems:'center',
marginTop:-30
}
});
AppRegistry.registerComponent('ScrollViewProject', () => ScrollViewProject);
http://upload-images.jianshu.io/upload_images / 4638259 - dfdf4a7c61cc60e3. png? imageMogr 2 / auto - orient / strip% 7CimageView 2 / 2 / w / 1240 효과 가 괜 찮 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.