博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RN组件之ScrollView
阅读量:4562 次
发布时间:2019-06-08

本文共 3710 字,大约阅读时间需要 12 分钟。

一.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

      .....

      

       

      代码示例:

        

1 'user strict' 2 const React =require('react-native'); 3 const { 4     AppRegistry, 5     ScrollView, 6     StyleSheet, 7     RefreshControl, 8     Text, 9     View,10     }=React;11 const styles=StyleSheet.create({12     row:{13         borderColor:'red',14         borderWidth:5,15         padding:5,16         backgroundColor:'#3a5795',17         margin:5,18     },19     text:{20         alignSelf:'center',21         color:'#fff',22     },23     scrollview:{24         flex:1,25     }26 });27 28 const Row =React.createClass({29     //误导新手啊,这句没用啊...30   /*  _onClick:function (){31         this.props.onClick(this.props.data);32    },*/33     render:function(){34         return (35             
36
37 {
this.props.data.text}38
39
40 );41 },42 });43 44 const RefreshControlDemo =React.createClass({45 getInitialState(){46 return {47 isRefreshing:false,48 loaded:0,49 rowData:Array.from(new Array(20)).map(50 (val,i) =>({text:"初始行"+i})51 ),52 };53 },54 render(){55 const rows=this.state.rowData.map((row,ii) =>{56 return
57 });58 return(59
68 }>69 {rows}70 71 );72 },73 74 75 _onRefresh(){76 this.setState({isRefreshing:true});77 setTimeout(() =>{78 //准备下拉刷新的5条数据79 const rowData =Array.from(new Array(5))80 .map((val,i) =>({81 text:'刷新行'+(+this.state.loaded+i)82 }))83 .concat(this.state.rowData);84 this.setState({85 loaded:this.state.loaded+5,86 isRefreshing:false,87 rowData:rowData,88 });89 },2000);90 },91 });92 93 AppRegistry.registerComponent('MyProject2', () => RefreshControlDemo);
View Code

    

      

转载于:https://www.cnblogs.com/ZSG-DoBestMe/p/5307835.html

你可能感兴趣的文章
ASIHTTP
查看>>
iOS 9: UIStackView入门
查看>>
Android——SQLite数据库(一)创建数据库、创建表、初始化数据
查看>>
自然语言处理Attention Model
查看>>
URAL 1152. False Mirrors (记忆化搜索 状压DP)
查看>>
操作mdb文件的帮助类
查看>>
mysql优化
查看>>
如何写技术博客
查看>>
百度 搜索引擎 关键字 算法
查看>>
git 命令
查看>>
13.UiAutomator 辅助APK的使用
查看>>
通过ida dump Uinity3D的加密dll
查看>>
一步步学Qt,第九天-Q”STL”与STL-再看C++
查看>>
JAVA集合框架的学习
查看>>
Hackers’ Crackdown-----UVA11825-----DP+状态压缩
查看>>
卡数字怀念的东西:魔方
查看>>
EL表达式的隐式对象
查看>>
一本开源的程序员快速成长秘笈
查看>>
python基础 六、模块和包
查看>>
url传中文,转码
查看>>