从零学React Native之09可触摸组件
可触摸组件有:
TouchableHighlight,TouchableNativeFeedback,TouchableOpacity,TouchableWithoutFeedback
1. TouchableWithoutFeedback,在用户触摸的时候没有反馈任何触摸效果,体验很不好,基本很少使用.
2. TouchableNativeFeedback 是Android操作系统专用组件,使用原生控件相应的状态来展示, 比如5.0以上产生涟漪效果.
3. TouchableHighlight与TouchableOpacity都产生视觉效果, 其中TouchableOpacity是四者中使用最多的.
TouchableHighlight
当一个组件成为TouchableHighlight组件的子组件后,这个组件触摸时会产生一种变暗的效果,原理就是让被子组件遮盖住的下一层颜色向上透出来,这样就使子组件变暗或颜色, 默认透传上来是黑色, 可以通过underlayColor指定透传的颜色。activeOpacity属性可以指定透明度. 默认是0.8。
TouchableHighlight 还有一个bug,来看下面的代码:
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
View,
TouchableHighlight,
TouchableOpacity,
TouchableNativeFeedback
} from 'react-native';
class AwesomeProject extends Component {
render() {
return (
//根View
<View style={{flex:1,backgroundColor:'white'}}>
<TouchableHighlightonPress={this.buttonPressed}>
<View style={{width:120,height:70,backgroundColor:'grey'}}/>
</TouchableHighlight>
</View>
);
}
buttonPressed(){
console.log("press");
}
}
按下前效果:
按下的效果:
可以看到右侧不应该变暗的地方也变暗了, 这个可以在右侧增加一些其他需要显示的组件,或者为整个背景加个图片就可以解决。 当然还是建议大家使用TouchableOpacity。
TouchableOpacity
当一个组件成为TouchableOpacity组件的子组件后, 这个组件被触摸时会变成半透明的组件,通过activeOpacity 控制透明度, 默认是0.2 。
修改上面的代码:
...
render() {
return (
//根View
<View style={{flex:1,backgroundColor:'white'}}>
<TouchableOpacity onPress={this.buttonPressed}>
<View style={{width:120,height:70,backgroundColor:'grey'}}/>
</TouchableOpacity>
</View>
);
}
...
TouchableOpacity按下效果:
回调函数和其它属性
- onPress 点击事件回调函数
- onLongPress 长按事件
- delayLongPress 设置长按事件的时长是多少毫米 默认是500ms
- delayPressOut 设置离开屏幕多少毫秒后 onPressOut事件被激活, 默认是0
- delayPressIn 设置手指触摸屏幕多少毫米厚, onPressIn事件被激活,默认是0
从零学React Native之09可触摸组件的更多相关文章
- 从零学React Native之13 持久化存储
数据持久化就是指应用程序将某些数据存储在手机存储空间中. 借助native存储 这种方式不言而喻,就是把内容传递给native层,通过原生API存储,详见从零学React Native之05混合开发 ...
- 从零学React Native之11 TextInput
TextInput 组件是用来通过键盘输入文字,可以使用View组件和Text组件样式,没有自己特定的样式. 与Text组件类似,TextInput组件内部的元素不再使用FlexBox布局,而采用文本 ...
- 从零学React Native之03页面导航
之前我们介绍了RN相关的知识: 是时候了解React Native了 从零学React Native之01创建第一个程序 从零学React Native之02状态机 本篇主要介绍页面导航 上一篇文章给 ...
- 从零学React Native之02状态机
本篇文章首发于简书 欢迎关注 之前我们介绍了RN相关的知识: 是时候了解React Native了 从零学React Native之01创建第一个程序 本篇文章主要介绍下下面的知识: 1.简单界面的搭 ...
- 从零学React Native之04自定义对话框
本篇主要介绍: 1. 自定义组件 2. Alert 对话框 自定义对话框 之前的我都是利用React Native提供的基础组件对它们进行排列组合, 其实自定义也很简单, 我们还是拿上一篇文章的例子进 ...
- 从零学React Native之14 网络请求
通过HTTP或者HTTPS协议与网络侧服务器交换数据是移动应用中常见的通信方式. node-fetch是RN推荐的请求方式. React Native框架在初始化项目时, 引入了node-fetch包 ...
- 从零学React Native之12 组件的生命周期
一个React Native组件从它被加载,到最终被卸载会经历一个完整的生命周期.所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命周期,是合理开发的关键. ES6语法和之前的ES5 ...
- 从零学React Native之10Text
在React Native开发中,所有需要显示的字符串文本都需要放置在Text或者Text的子组件中.虽然在之前的文章中多次使用了Text组件,但是Text组件还是值得专门学习的, 并没有想象中的那么 ...
- 从零学React Native之08Image组件
开发过程中, 几乎每个项目都会用到图片. RN就是通过Image组件显示图片.既可以加载网络图片,也可以加载本地资源图片. Image组件必须在样式中声明图片的款和高.如果没有声明,则图片将不会被呈现 ...
随机推荐
- hdu 5823 color II——子集dp(独立集)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5823 独立集染一种颜色.在这个基础上枚举子集来dp. 状压一样地存边真是美妙. 2^32是1ll<& ...
- body-parser与querystring与multer的区别
body-parser express中间件 body-parser是用来解析http请求体的,是express默认使用的中间件之一. (只解析post的普通数据请求,无法解析post文件请求) 使用 ...
- JavaScript中this的指向2(转载)
1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...
- ADO.NET实体数据模型
本文说一下如何使用ADO.NET实体数据模型,并解释一些概念. 1,首先你要建立一个数据库.比如我在SQL2005上面建立了数据库student,包含两个表: 2,然后再项目上添加新建项: 3,打开新 ...
- redis教程(一)-----redis数据类型、基本命令、发布订阅以及持久化
简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMwa ...
- Java问题解读系列之String相关---String类的常用方法?
今天的题目是:String类的常用方法? 首先,我们在eclipse中定义一个字符串,然后使用alt+/就会出现String类的所有方法,如下图所示: 下面我就挑选一些常用的方法进行介绍: 首先定义两 ...
- 页面PC端 / 移动端整屏纵向翻页,点击/触摸滑动效果功能代码非插件
页面翻页,滑动功能示范代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- 【模板】LIS模板 洛谷P1091 [NOIP2004提高组]合唱队形 [2017年4月计划 动态规划11]
以题写模板. 写了两个:n^2版本与nlogn版本 P1091 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队 ...
- mybatis官网文档mybatis_doc
在平时的学习中,我们可以去参考官网的文档来学习,这个文档有中文的,方便我们去阅读,而且这里的分类很详细. 官网文档链接:http://www.mybatis.org/mybatis-3/zh/inde ...
- bzoj1823满汉全席
2-sat模板 这篇博客写得非常好 传送门 //Achen #include<algorithm> #include<iostream> #include<cstring ...