当前位置: 首页 > news >正文

自主网站建站微商城小程序哪个好

自主网站建站,微商城小程序哪个好,网站设计建设 公司,建设网站的企业多少钱需求背景 使用 ScrollView 组件实现轮播图效果,该轮播图可以自动向右滑动。有下面两个需求: (1)希望用户左右点击的时候,视图可以向左/向右滚动; (2)希望用户触摸在屏幕的时候&am…

需求背景

使用 ScrollView 组件实现轮播图效果,该轮播图可以自动向右滑动。有下面两个需求:

(1)希望用户左右点击的时候,视图可以向左/向右滚动;

(2)希望用户触摸在屏幕的时候,轮播图不自动滚动,放开的时候重新计时5秒后向右滚动;

(3)在轮播视图内有一个按钮,希望我们在点击按钮并弹出弹窗的时候,轮播图停止计时,弹窗关闭后再重新计时。

需求分析

(1)我们可以使用 TouchableWithoutFeedback 组件,分别覆盖左右视图,当触发onPress的时候进行翻页。

(2)可以使用 ScrollViewonTouchStartonTouchEnd 事件,分别表示触摸开始和触摸结束时候的回调。

(3)事件的回调顺序是: onTouchStart > onPress > onTouchEnd ,所以下面的这种写法会导致,当点击share按钮的时候,打印如下:

onTouchStart
click button, start to stop timer
onTouchEnd
// 执行完异步操作后会打印
start to start timer

但我们希望的是,能够打印如下:

onTouchStart
click button, start to stop timer
// onTouchEnd 不打印
// 执行完异步操作后会打印
start to start timer
state = {scrollViewTouchable: true,
};handleSharePress = async() => {// 停止定时器console.log('click button, start to stop timer');this.handleStopTimer();// 处理 "Share" 按钮的逻辑// await ....// 打开定时器console.log('start to start timer');this.handleStartTimer();
};render() {const { scrollViewTouchable } = this.state;return (<View><ScrollViewonTouchStart={scrollViewTouchable ? ()=>{this.handleStartTimer(); console.log('onTouchStart')} : undefined}onTouchEnd={scrollViewTouchable ? ()=>{this.handleStopTimer(); console.log('onTouchEnd')} : undefined}// 其他属性...>{/* ScrollView 内容 */}<TouchableOpacityonPress={this.handleSharePress}><View style={styles.shareButton}>{/* Share 按钮内容 */}</View></TouchableOpacity></ScrollView></View>);
}

解决方法

通过阻止默认事件的方式好像不能解决上述问题,因为 TouchableWithoutFeedback 组件不会阻止事件冒泡到父组件。

所以我们考虑用一个state变量来控制 ScrollView 组件的触摸事件是否可用。在点击 “Share” 按钮时,将状态变量设置为 false,在 onPress 事件完成后,将状态变量设置回 true。

state = {scrollViewTouchable: true,
};handleSharePress = async() => {this.setState({ scrollViewTouchable: false });// 处理 "Share" 按钮的逻辑// await...this.setState({ scrollViewTouchable: true });
};render() {const { scrollViewTouchable } = this.state;return (<View><ScrollViewonTouchStart={scrollViewTouchable ? this.handleStartTimer : undefined}onTouchEnd={scrollViewTouchable ? this.handleStopTimer : undefined}// 其他属性...>{/* ScrollView 内容 */}<TouchableOpacityonPress={this.handleSharePress}><View style={styles.shareButton}>{/* Share 按钮内容 */}</View></TouchableOpacity></ScrollView></View>);
}
http://www.yayakq.cn/news/208963/

相关文章:

  • 企业网站建设服务公司怎样做汽车之家视频网站
  • 推广网站制作怎么做网站有收录但是没排名
  • 设计师必去的网站互联网保险的发展现状
  • 网站不允许上传文件网站开发h5技术
  • 老年人做网站全国有名的网站建设公司
  • 外贸建站的公司响应式企业官网
  • 东莞樟木头网站制作程序员外包兼职平台
  • 班组安全建设 网站郑州seo排名优化公司
  • 网站推广制作株洲网站设计
  • 企业网站建设和网络营销的关系uc浏览网页版进入
  • 昆明市做网站公司石家庄网站建设服务
  • 南阳网站制作哪家好logo在线设计图片
  • 永州公司网站建设北京seo站内优化
  • 如何用ai给网站做logo做网站不给提供ftp
  • 网站svg使用无锡seo报价
  • 背景素材网win10优化大师官网
  • 网站后台管理系统演示商城网站建设服务器
  • 承德网站开发区地税平台不得诱导下载
  • 网页设计实训报告范例怎样做seo搜索引擎优化
  • vps网站权限南京建站软件
  • 建设局局长是什么级别网站优化合同
  • 企业站seo点击软件seo自然排名优化
  • 太原网站seo外包网站主办者单位有效证件电子件是什么
  • 网站视频做参考文献网页制作工具按其制作方式分可以分为
  • 做网站被坑求职信息发布网
  • 黄冈人才网最新招聘360优化大师软件
  • 企业网站建设目的选择题企业网站 开源php
  • 安徽省建设厅网站工程师查询怎样做一个企业的网站建站
  • 如何建设移动网站wordpress amp设置
  • 石家庄英文网站建设台式机做网站服务器