一.ScrollView

  该组件封装了Android平台的ScrollView(滚动组件),并且提供触摸事件"responder"系统功能.使用ScrollView的时候

  确保有一个固定的高度,因为这个控件其实就是把很多不固定高度的子控件装入到固定的父容器中(通过滑动交互).

  如果我们要给ScrollView进行设置高度的话,要么我们直接ScrollView进行设置高度(不建议).另一种方法就是给

  ScrollView的父控件设置相关高度.使用第二种方法ScrollView中是不能加{fLex:1},不然不会有效果的.

  1.属性方法(通用和Android的)

    (1)View相关属性样式全部继承(例如:宽和高,背景颜色,边距等相关属性样式)

    (2)contentContainerStyle:样式风格属性(传入StyleSheet创建的Style文件).该样式会作用于被ScrollView

      包裹的所有子视图

    (3)horizontal(bool):表示ScrollView是横向滑动还是纵向滑动.默认false表示纵向滑动

    (4)keyboardDismissMode(enum):('none','interactive','on-drag')

      none(默认值):拖拽时不隐藏软键盘

      on-drag:当拖拽开始的时候隐藏键盘

      interactive:软键盘伴随拖拽操作同步地消失,并且如果往上滑动会恢复键盘.安卓设备不支持这个选项,

            会表现的和none一样.

    (5)keyboardShouldPersiitTaps(bool):当此属性为false的时候,在软键盘激活之后,点击焦点文本框以外的

      地方,键盘就会隐藏.如果为true,滚动视图不会响应点击操作,并且键盘不会自动消失.默认值为false.

    (6)onScroll(function):在滚动的过程中,每帧最多调用一次回调函数.调用的频率可以用

      scrollEventThrottle属性来控制

    (7)refreshControl (element):指定RefershControl,用于为ScrollView提供下拉刷新功能.

    (8)removeClippedSubviews(bool):(实验特性):当此属性为true时,屏幕之外的子视图(子视图的overflow

      样式需要设为hidden)会被移除.这个可以提升大列表的滚动性能.默认值为true.

    (9)showsHorizontalScollIndicator(bool):当此属性为true的时候,显示一个水平方向的滚动条

    (10)showsVerticalScrollIndicator(bool):当此属性为true的时候,显示一个垂直方向的滚动条

    2.style样式

      (1)Flexbox...

      (2)Transforms...

      (3)backfaceVisibility enum('visible','hidden')

      (4)borderColor string

      (5)borderTopColor string

      (6)borderRightColor string

      (7)borderBottomColor string

      (8)borderLeftColor string

      (9)borderRadius number

      .....

      官方文档

       

     代码示例:

        

 'user strict'
const React =require('react-native');
const {
AppRegistry,
ScrollView,
StyleSheet,
RefreshControl,
Text,
View,
}=React;
const styles=StyleSheet.create({
row:{
borderColor:'red',
borderWidth:5,
padding:5,
backgroundColor:'#3a5795',
margin:5,
},
text:{
alignSelf:'center',
color:'#fff',
},
scrollview:{
flex:1,
}
}); const Row =React.createClass({
//误导新手啊,这句没用啊...
/* _onClick:function (){
this.props.onClick(this.props.data);
},*/
render:function(){
return (
<View style={styles.row}>
<Text style={styles.text}>
{this.props.data.text}
</Text>
</View>
);
},
}); const RefreshControlDemo =React.createClass({
getInitialState(){
return {
isRefreshing:false,
loaded:0,
rowData:Array.from(new Array(20)).map(
(val,i) =>({text:"初始行"+i})
),
};
},
render(){
const rows=this.state.rowData.map((row,ii) =>{
return <Row key={ii} data={row}/>
});
return(
<ScrollView
style={styles.scrollview}
refreshControl={
<RefreshControl
refreshing={this.state.isRefreshing}
onRefresh={this._onRefresh}
colors={['#ff0000','#00ff00']}
progressBackgroundColor="#ffffff"
/>
}>
{rows}
</ScrollView>
);
}, _onRefresh(){
this.setState({isRefreshing:true});
setTimeout(() =>{
//准备下拉刷新的5条数据
const rowData =Array.from(new Array(5))
.map((val,i) =>({
text:'刷新行'+(+this.state.loaded+i)
}))
.concat(this.state.rowData);
this.setState({
loaded:this.state.loaded+5,
isRefreshing:false,
rowData:rowData,
});
},2000);
},
}); AppRegistry.registerComponent('MyProject2', () => RefreshControlDemo);

    原文地址

      

RN组件之ScrollView的更多相关文章

  1. 第27讲 UI组件之 ScrollView与底部动态添加数据

    第27讲 UI组件之 ScrollView与底部动态添加数据 1. ScrollView(滚动视图) ScrollView(滚动视图)是实现滚动的一个控件,只需要将需要滚动的控件添加到ScrollVi ...

  2. RN组件备忘录

    1:ActivityIndicator:圆形的loading提示符号. 2:Button:按钮 3:FlatList:高性能列表组件,支持下拉刷新. 4:Image:图片组件,能显示 网络图片.静态资 ...

  3. React Native组件之ScrollView 和 StatusBar和TabBarIos

    React Native中的组件ScrollView类似于iOS中的UIScrollView,其基本的使用方法和熟悉如下: /** * Sample React Native App * https: ...

  4. React Native常用组件之ScrollView

    1. 两个要点 1.1 ScrollView必须有一个确定的高度才能正常工作 它实际上所做的就是将一系列不确定高度的子组件装进一个确定高度的容器(通过滚动操作) 通常有两种做法: 第一种: 直接给该S ...

  5. React Native常用组件之ScrollView组件

    一.前言 从iOS开发的经验来看,scrollView无疑是移动开发中很重要的一个组件,比如后面会学到的ListView就是继承自它.那么,在开发中比如:焦点图.引导页等地方都有其的影子,那接下来我们 ...

  6. 【Flutter学习】可滚动组件之ScrollView

    一,概述 ScrollView 是一个带有滚动的视图组件. 二,组成部分 ScrollView 由三部分组成: Scrollable - 它监听各种用户手势并实现滚动的交互设计.可滚动Widget都直 ...

  7. RN组件之Navigator

    一.Navigator 1.使用导航器可以在应用的不同场景(页面)间进行切换.导航器通过路由对象来分辨不同的场景.利用renderScene方法,导航栏可以根据 指定的路由来渲染场景. 可以通过con ...

  8. RN组件之Switch与Picker

    一.Switch选择开关控件 1.该组件为Android/IOS通用的两种状态的开关组件 2.属性方法 (1)disabled bool:如果该值为true,用户就无法点击switch开关,默认为fa ...

  9. RN组件之ToolbarAndroid

    一.ToolbarAndroid 1.该组件封装了Android平台中的ToolBar组件(只适用于Android平台).一个ToolBar组件可以显示一个Logo图标 以及一些导航图片(例如:菜单功 ...

随机推荐

  1. 全面解释StringBuilder、StringBuffer和String的关系

    1. String 类    String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间.   String a = " ...

  2. AngularJS服务中serivce,factory,provider的区别

    Angular服务是一个由服务工厂创建的单例对象.这些服务工厂是由 service provider 依次创建的.而service providers是构造函数.它们必须包含一个$get属性用于在实例 ...

  3. iOS8 UILocalNotification 和 UIRemoteNotification 使用注意 草稿,正在整理中。。。。

    先说一个关于UILocalNotification的知识点,容易被忘记: Each app on a device is limited to 64 scheduled local notificat ...

  4. mysqldump备份

    备份工具1.mysqldump(数据量很大时不推荐使用)   myisam 锁表   innodb 行锁 mysqldump --help | less   #查看mysql所有的语法 mysqldu ...

  5. Win7下虚拟机个人使用小结:Virtual PC,VMware和VirtualBox

    想来用了很多年的虚拟机了,换了Win7之后,种种原因又需要使用虚拟机,这里就简单介绍和比较一下. 点击小图看大图. Virtual PC: 如果想做Windows虚拟机的话,Virtual PC在之前 ...

  6. 【JAVA、C++】LeetCode 005 Longest Palindromic Substring

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

  7. DP:Dollar Dayz(POJ 3181)

    一道高精度DP 题目大意,换工具,有m块钱,有k种价值的物品,(1...k),求一共有多少种换法 这一题就是完全背包,现在这种完全背包对我来说就是水题了, 状态转移方程闭着眼睛写dp[j]+=dp[j ...

  8. IOS多线程(NSOperation,NSOperationQueue)

    含义:NSOperation,NSOperationQueue是什么. The NSOperation class is an abstract class you use to encapsulat ...

  9. UVALive 7269 Snake Carpet (构造)

    题目:传送门. 题意:构造出一个矩阵,使得矩阵含有n条蛇,每条蛇的长度是1到n,并且奇数长度的蛇有奇数个拐弯,偶数长度 的蛇有偶数个拐弯. 奇数和偶数分开构造,奇数可以是: 1357 3357 555 ...

  10. 一、HTML和CSS基础--HTML+CSS基础课程--第2部分

    第三章 与浏览器交互,表单标签 使用表单标签,与用户交互
网站怎样与用户进行交互?答案是使用HTML表单(form).表单是可以把浏览者输入的数据传送到服务器端,这样服务器端程序就可以处理表单传过来的 ...