ScrollView组件允许用户左、右或者上、下滑动来查看原来显示在屏幕外的内容

一、ScrollView组件常用属性
1.horizontal:布尔类型属性,当他为true时,ScrollView的所有子组件将会水平排列,false为垂直排列
2.showsHorizontalScrollIndicator:布尔类型属性,当他为true时,水平方向会展示一个滑动指示器
3.showsVerticalScrollIndicator:布尔类型属性,当他为true时,垂直方向会展示一个滑动指示器
4.onContentSizeChange是一个回调函数,当ScrollView组件的容器View宽、高被改变时,这个回调函数将被执行
5.onScroll是一个回调函数,当ScrollView组件被滑动时,每一帧的画面改变都会触发一次该函数

二、ScrollView组件常用方法
ScrollView组件提供了一个scrollTo函数,让当前的ScrollView组件快速的定位到指定屏幕位置

 this.refs.scrollView.scrollTo({x:0,                                           //欲定位位置横坐标y:contentHeight-this.state.contentHeight0,     //欲定位位置纵坐标animated:true                                 //是否需要动画效果});

scrollToEnd函数让当前的ScrollView组件快速的定位到ScrollView底部,它接受一个bool类型参数,用来控制定位时是否有动画效果

this.refs.scrollView.scrollToEnd(true);

实例

/*此函数会在ScrollView内部可滚动内容的视图发生变化时调用。*/ContentSizeChange(contentWidth, contentHeight){/*发送或接收消息时定位到滚动区域底部*/if(contentHeight>this.props.chatAreaHeight&&this.props.chatAreaHeight!==null&&this.props.sendingMsg){this.refs.scrollView.scrollToEnd(true);}/*拉到顶部获取新数据后,定位到之前的位置*/if(this.props.isLoading){setTimeout(()=>{this.refs.scrollView.scrollTo({x:0,y:contentHeight-this.state.contentHeight0,animated:false});this.setState({contentHeight0:contentHeight})},50)}else {this.setState({contentHeight0:contentHeight,})}}

三、RefreshControl组件
RefreshControl是专门为ScrollView服务的组件。当ScrollView被拉到顶部(y:0)时,如果给ScrollView的refreshControl属性赋值一个RefreshControl组件,则会显示这个RefreshControl组件。开发者通常会用它从网络侧获取最新的数据,并在获取到最新数据后让RefreshControl组件消失

<ScrollView style={chatArea.scrollView}onContentSizeChange={this.ContentSizeChange.bind(this)}automaticallyAdjustContentInsets={true}className={'chatArea'}refreshControl={<RefreshControl refreshing={isRefreshing}tintColor='#ff0000'title='Loading...'colors={['#ff0000','#00ff00','#0000ff']}progressBackgroundColor='#ffff00'onRefresh={this._onRefresh}/>}ref='scrollView'></ScrollView>

onRefresh是回调函数,当ScrollView拉到顶部时会执行
refreshing是布尔类型的参数,控制RefreshControl组件是否展示

实例

_onRefresh(){this.setState({isRefreshing:true});this.props.loadMore().then(()=>{this.setState({isRefreshing:false});});}

四、、使用时注意事项

//ScrollView 必须有一个确定的高度才能正常工作,对于 ScrollView 来说,它就是将一些不确定高度的子组件装进确定高度的容器//初始化的2种方式
1. 给 ScrollView 中加 [flex:1]2. 直接给该 ScrollView 设置高度(不建议),因为它会根据内部组件自动延伸自己的尺寸到合适的大小

RN ScrollView组件相关推荐

  1. 小程序高级电商前端第2周深入理解REST API开发规范 开启三端分离编程之旅<二>----scroll-view组件的灵活应用、async和await问题探讨、spu-scroll自定义组件

    前言: 转眼距离上一次写博文又过去一个月了,今年的博文节奏已经彻底被打破了: 真的是有心无力了,其原因在之前也提到过,组织架构调整,各种考核(跨领域性质的考核)实行末尾淘汰制,说不出的酸楚,不过换个心 ...

  2. scroll-view组件bindscroll实例应用:自定义滚动条

    我们知道scroll-view组件作为滑动控件非常好用,而有时候我们想放置一个跟随滚动位置来跟进的滚动条,但又不想用滚动条api该怎么办呢?(当然是自己写一个呗还能怎么办[自黑冷漠脸]) 嗯,没错.自 ...

  3. RN ScrollView滑动不到底部问题

    先怀疑是RN版本问题:(根据创建不一样的rn项目demo来进行测试,和项目一致的版本来测试,最终问题锁定在我们自己修改的代码上.) react-native init projectname 创建RN ...

  4. 小程序横向scroll-view组件自动滚动到某个view

    先看下效果 scroll-view一般用于做横向侧滑动栏目,分类等等,在这里我用改组件做时间分栏. wxml部分 <view class="scroll_box">&l ...

  5. 微信小程序scroll-view组件套textarea框内文字和placeholder上飘解决

    wxml如下,此时scroll-view组件内的textarea中输入的文字和placeholder的内容在滚动屏幕时会上飘 <scroll-view style="width:100 ...

  6. 微信小程序 scroll-view组件实现列表页实例代码

    这篇文章主要介绍了微信小程序 scroll-view组件实现列表页实例代码的相关资料,scroll-view组件介绍scroll-view是微信小程序提供的可滚动视图组件,其主要作用是可以用来做手机端 ...

  7. Cocos Creater中 ScrollView 组件的使用

    1.画布大小750*1334 2.scrollView里的 content节点的大小之前设置的为750*1334 结果: 完全划不动 后来发现: 实际上,content节点里装的是需要展示的内容,sc ...

  8. 微信小程序全栈开发实践 第二章 微信小程序组件介绍及使用 -- 2.6 scroll-view组件,在小程序中如何实现滚动锚定,如何渲染一个滚动的长列表?

    scroll-view 是一个可以滚动的视图区域的容器组件. 一.重要属性 scroll-view 的滚动属性,实现了两套功能 左右或上下滚动 下拉更新 1.1 与滚动有关的属性: scroll-x ...

  9. RN自定义组件封装 - 播放类似PPT动画

    1. 前言 近日,被安排做一个开场动画的任务.虽然RN提供了Animated来自定义动画,但是本次动画中的元素颇多,交互甚烦...在完成任务的同时,发现很多步骤其实是重复的,于是封装了一个小组件记录一 ...

最新文章

  1. 堆内存和数据结构堆之间的关系是什么?
  2. 牛客 - Connie(AC自动机+dp/KMP+dp)
  3. svg转css font,css – 如何将.svg文件转换为字体?
  4. java -jar 怎么停止_图解Java日志体系
  5. 学习面试题(day01)
  6. 洛谷 P2764(最小路径覆盖=节点数-最大匹配)
  7. win7的centos虚拟机上搭建mysql5.6服务
  8. 细粒度图像分析进展综述(转)
  9. python里使用正则表达式的后向搜索肯定模式
  10. js读取服务器excel文件是否存在,js读取Excel文件
  11. iterm2上传文件到linux,在iTerm2中使用Zmodem实现快速传输文件
  12. Oracle JDK收费理解
  13. 2021-2-5BootStrap4.5中的blockquote标签
  14. StarRocks 在中移物联网 PGW 实时会话业务领域的应用
  15. x1c 语言设置,创新经典平衡点 ThinkPad X1Carbon评测
  16. 健身房会员管理系统(Java+Web+MySQL)
  17. 【头歌】重生之机器学习-线性回归
  18. GreenPlum常用字符串函数
  19. PAT题目详解-----愿天下有情人都是失散多年的兄妹
  20. 联通4G业务或沿用沃品牌 不推无限量套餐

热门文章

  1. CSDN新手积分获取办法
  2. 根据图片url下载图片
  3. mysql——多表操作
  4. 关于Keil出现Browse Information of one or more files is not avaliable
  5. 我与Python处处吻
  6. Java实现 蓝桥杯VIP 算法提高 质数的后代
  7. 错误描述:Non-terminating decimal expansion; no exact representable decimal result.
  8. html视频和音频标签
  9. Linux——MySQL日志
  10. 常见用户行为分析模型解析