鱼C论坛

 找回密码
 立即注册
查看: 3232|回复: 0

[技术交流] RN之获取屏幕宽高与scrollView的其他属性

[复制链接]
发表于 2017-8-8 09:01:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
首先把几张图片放进新建的img文件夹里(图片的文件名要与代码里相符),然后写入以下代码:
  1. import React from 'react';
  2. import { StyleSheet, Text, View, Image, TouchableOpacity, ScrollView, Dimensions } from 'react-native';

  3. class Img1 extends React.Component{
  4.   render(){
  5.     return(
  6.       <View>
  7.         <Image  ref={(aaa)=>{this.m=aaa}}
  8.         style={styles.img} source={this.props.mydata} />
  9.         <Text style={{zIndex: 2,fontSize: 25}}>{this.props.a}</Text>
  10.       </View>
  11.     )
  12.   }
  13. }

  14. export default class App extends React.Component {
  15.   constructor(props) {
  16.     super(props);
  17.   
  18.     this.state = {a:0};
  19.   }
  20.   render() {
  21.     return (
  22.       <View style={styles.container}>
  23.         <ScrollView horizontal={true}
  24.         pagingEnabled={true}
  25.         showsHorizontalScrollIndicator={false}
  26.         onMomentumScrollEnd={(e)=>this.onAnimationEnd(e)}>
  27.         <Img1 mydata={require('./img/0.jpg')} a={this.state.a}/>
  28.         <Img1 mydata={require('./img/1.jpg')} a={this.state.a}/>
  29.         <Img1 mydata={require('./img/2.jpg')} a={this.state.a}/>
  30.         <Img1 mydata={require('./img/3.jpg')} a={this.state.a}/>
  31.         <Img1 mydata={require('./img/4.jpg')} a={this.state.a}/>
  32.         <Img1 mydata={require('./img/5.jpg')} a={this.state.a}/>
  33.         <Img1 mydata={require('./img/6.jpg')} a={this.state.a}/>
  34.         </ScrollView>
  35.       </View>
  36.     );
  37.   }
  38.   onAnimationEnd(e){
  39.     let f=e.nativeEvent.contentOffset.x
  40.     let a=Math.floor(f / 400)
  41.     this.setState({a})
  42.   }           
  43. }

  44. var {height, width} = Dimensions.get('window');
  45. const styles = StyleSheet.create({
  46.   container: {
  47.     flex: 1,
  48.     backgroundColor: '#fff',
  49.     flexDirection: 'row',
  50.     justifyContent:'flex-start',
  51.     flexWrap: 'wrap',
  52.   },
  53.   img:{
  54.     width: width,
  55.     height: height-40,
  56.   },
  57. });
复制代码

这其实就是自己做一个翻页效果的手机相册,其中scrollView里面的几个属性分别为:设置为横向滚动;翻页效果;把滚动条去掉;每次翻页结束计算累计屏幕宽度
第47行代码是获取屏幕宽高,提前要把Dimension控件import进来。效果图:
jdfw.gif

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-6 01:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表