文档来源:
Gesture Handler 库提供了可以充当按钮的原生组件。可以认为是RN中 TouchableHighlight
或 TouchableOpacity
的替代。
当前这个库提供了3个基于RN toucahable元素的3个按钮组件:
BaseButton
RectButton
BorderlessButton
这3个组件都是用了 NativeViewGestureHandler
进行包裹,因此可以使用所有的gestrue handler中通用的属性,和一些额外的一些属性。
BaseButton
可以当作一个基类,当按钮被点击时用作一些自定义交互
属性:
-
onActiveStateChange
:当按钮从未激活状态变为激活状态时的函数,反之亦然。它将active state 这个布尔值作为第一个参数传入到方法中 -
onPress
: 和RN中TouchableHighlight
的onPress一样 -
rippleColor (Android only)
: ripple 动画颜色值, API >= 21 -
exclusive (iOS only)
: 定义是否允许同时点击多个按钮,默认值为 true
RectButton
矩形元素或者内容块元素被点击时,使用这个组件,比如table rows 或者 按钮中带有图标和文字的。
这个组件提供了一种平台制定的交互,在安卓中渲染矩形ripple,iOS中提供高亮,除了上面 BaseButton
的属性外还有下面属性:
-
underlayColor
: 按钮处于激活状态时变暗的背景颜色 -
activeOpacity (iOS only)
: 按钮处于激活状态时的透明度
BorderlessButton
这种按钮多用于 icon-only
或者 text-only
的按钮中。除了上面 BaseButton
的属性外还有下面属性:
-
borderless (android only)
: 如果希望ripple效果仅在视图内渲染,则将其设置为 false -
activeOpacity (iOS only)
: 按钮处于激活状态时的透明度