ScrollView是一个通用的可滚动的容器,可以在其中放入多个组件和视图,而且这些组件并不需要是同类型的。ScrollView 不仅可以垂直滚动,还能水平滚动(通过horizontal属性来设置)。
下面的示例代码创建了一个垂直滚动的ScrollView,其中还混杂了图片和文字组件。
import React, { Component } from 'react'; import { AppRegistry, ScrollView, Image, Text } from 'react-native'; export default class IScrolledDownAndWhatHappenedNextShockedMe extends Component { render() { return ( <ScrollView> <Text style={{fontSize:96}}>Scroll me plz</Text> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Text style={{fontSize:96}}>If you like</Text> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Text style={{fontSize:96}}>Scrolling down</Text> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Text style={{fontSize:96}}>What's the best</Text> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Text style={{fontSize:96}}>Framework around?</Text> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Image source={{uri: "https://facebook.github.io/react-native/img/favicon.png", width: 64, height: 64}} /> <Text style={{fontSize:80}}>React Native</Text> </ScrollView> ); } }
ScrollView在使用 pagingEnabled 属性下可以通过配置实现手指在多个 View 组件间扫动而翻页的功能。安卓系统中,可以使用 ViewPagerAndroid组件,在多个View组件间横向扫动也可以实现翻页。
只有一个子组件的 ScrollView 组件可以用于伸缩页面大小。通过设置 maximunZoonScale 和 minimumZoonScale 属性,用户可以在手机屏幕通过两手指来缩小和放大页面内容。
ScrollView适合用来显示数量不多的滚动元素。放置在ScrollView中的所有组件都会被渲染,哪怕有些组件因为内容太长被挤出了屏幕外。如果需要显示较长的滚动列表,那么应该使用功能差不多但性能更好的FlatList组件。
- 我的微信
- 一起交流技术
- 我的微信公众号
- 一起交流技术