React Native开发之——组件ScrollView

前言

ScrollView是一个通用的可滚动的容器,你可以在其中放入多个组件和视图,而且这些组件并不需要是同类型的。ScrollView不仅可以垂直滚动(默认),还能水平滚动(通过horizontal属性来设置)。

组件ScrollView

属性

本文介绍一些ScrollView常用属性

  • horizontal(布尔值):当此属性为true的时候,所有的的子视图会在水平方向上排成一行,而不是默认的在垂直方向上排成一列。默认值为false。
  • showsHorizontalScrollIndicator(布尔值):当此属性为true的时候,显示一个水平方向的滚动条。
  • showsVerticalScrollIndicator(布尔值):与showsHorizontalScrollIndicator相对,当此属性为true的时候,显示一个垂直方向的滚动条。
  • OnMomentumScrollEnd(function) :当一帧滚动完毕的时候调用,e.nativeEvent.contentOffset,可以用来获取偏移量。
  • onScrollBeginDrag(function) :当开始手动拖拽的时候调用。
  • onScrollEndDrag(function) :当结束手动拖拽的时候调用。
  • onScroll(function) :在滚动的过程中,每帧最多调用一次此回调函数。调用的频率可以用scrollEventThrottle属性来控制。

代码实例

轮播图

export default class App extends Component<Props> 
{
	render() 
	{
		return (
    	<View style={styles.container}>
        	{/* 实例化ScrollView */}
        	<ScrollView style={styles.scrollViewStyle}
                    horizontal={true}   // 水平方向
                    showsHorizontalScrollIndicator={false}  // 隐藏水平指示器
                    showsVerticalScrollIndicator={false}    // 隐藏垂直指示器
                    pagingEnabled={true}    // 开启分页功能
        			>
            	{/* 实例化内部子视图 */}
            	{this.renderItem()}
        	</ScrollView>
    	</View>
	);
	}
// scrollView子视图
	renderItem() 
	{
	    var itemAry = [];
	    // 获取json中图片
	    var imgAry = constantData.data;
	    // 根据json数据实例化视图
	    for (var i = 0; i<imgAry.length; i++) 
		{
	        // 取出单个对象
	        var item = imgAry[i];
	        // 将子视图放进 itemAry
	        itemAry.push(
	            // 实例化子视图
	            <Image key={i} style={styles.itemStyle}source=	{{uri:item.image}} />
        	)
    	}

    	// 返回数组
   	 return itemAry;
	}
}

效果图


其他

参考:Github下载