天天看点

从零学React Native之09可触摸组件

可触摸组件有:

<code>touchablehighlight,touchablenativefeedback,touchableopacity,touchablewithoutfeedback</code>

1. touchablewithoutfeedback,在用户触摸的时候没有反馈任何触摸效果,体验很不好,基本很少使用.

2. touchablenativefeedback 是android操作系统专用组件,使用原生控件相应的状态来展示, 比如5.0以上产生涟漪效果.

3. touchablehighlight与touchableopacity都产生视觉效果, 其中touchableopacity是四者中使用最多的.

当一个组件成为touchablehighlight组件的子组件后,这个组件触摸时会产生一种变暗的效果,原理就是让被子组件遮盖住的下一层颜色向上透出来,这样就使子组件变暗或颜色, 默认透传上来是黑色, 可以通过underlaycolor指定透传的颜色。activeopacity属性可以指定透明度. 默认是0.8。

touchablehighlight 还有一个bug,来看下面的代码:

按下前效果:

从零学React Native之09可触摸组件

按下的效果:

从零学React Native之09可触摸组件

可以看到右侧不应该变暗的地方也变暗了, 这个可以在右侧增加一些其他需要显示的组件,或者为整个背景加个图片就可以解决。 当然还是建议大家使用touchableopacity。

当一个组件成为touchableopacity组件的子组件后, 这个组件被触摸时会变成半透明的组件,通过activeopacity 控制透明度, 默认是0.2 。

修改上面的代码:

touchableopacity按下效果:

从零学React Native之09可触摸组件

onpress 点击事件回调函数

onlongpress 长按事件

delaylongpress 设置长按事件的时长是多少毫米 默认是500ms

delaypressout 设置离开屏幕多少毫秒后 onpressout事件被激活, 默认是0

delaypressin 设置手指触摸屏幕多少毫米厚, onpressin事件被激活,默认是0

继续阅读