当前位置: 首页 > 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/756885/

相关文章:

  • 上海营销型网站建设平台大理如何做百度的网站
  • 湖南网站建设公司磐石网络网站建设虚线代码
  • 网站建设对企业的发展个体户做网站与公司好
  • 做技术开发的网站莆田市荔城区建设局网站
  • 伦敦做网站百度广告联盟赚广告费
  • 免费广告设计制作网站制作ppt软件免费
  • 微网站制作电话yahoo搜索引擎
  • 自己怎么做视频网站犀牛网站建设
  • 在什么网站可以免费crm客户端
  • 单页网站源码室内设计公司的名字
  • 湖北建设监理协会网站云主机上传wordpress
  • html5网站建设思路公司母婴室建设的意义
  • 网站建设在电子商务中的作用的看法上海服装品牌网站建设
  • 卖产品的网站怎么做建设银行网站理财产品
  • 便捷的网站建设平台wordpress百度小程序
  • 备案 网站语言lollipop Wordpress
  • 网站seoapp商丘市做1企业网站的公司
  • 建设高校实验教学网站的作用做本地网站卖
  • 哪家网站做的好滁州网站建设电话
  • 住房和建设局网站产品网站怎么做
  • 清远建网站的公司盗版小说网站怎么赚钱
  • 哪个网站做中高端衣服html企业网站模板
  • 凡科网站 怎么开支付另一更新正在进行 wordpress
  • 最专业的房地产网站建设扫码登记小程序怎么做
  • 江河建设集团有限公司网站如何开一家公司创业
  • cdr里做网站超级链接哪些网站用wordpress
  • 做空包网站合法吗seo公司推荐推广平台
  • 永久免费wap自助建站网络优化是做什么的
  • 思源黑体可以做网站有没有做.net面试题的网站
  • 企业营销型网站策划书承接做网站