@vivintsolar-oss/native-vs-touchable
v1.3.3
Published
Touchable Wrapper for VSLR UI kit
Downloads
7
Keywords
Readme
@vivintsolar-oss/native-vs-touchable
yarn add @vivintsolar-oss/native-vs-touchable
// or
// npm install @vivintsolar-oss/native-vs-touchable
Touchable
A wrapper around the various Touchable*
components built into React Native core in order to use TouchableNativeFeedback
whenever possible, provide an easier interface to using it, and flatten out API differences between the Touchable components.
- iOS: Defaults to
TouchableOpacity
with defaultactiveOpacity
. - Android: Defaults to
TouchableNativeFeedback
with background from Android app style, unless Android API <= 20 / Android < 5.0, then defaults toTouchableOpacity
.
import React from 'react';
import { Text, View } from 'react-native';
import Touchable from '@vivintsolar-oss/native-vs-touchable';
export default class App extends React.Component {
render() {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Touchable
onPress={() => console.log('Stop poking me ☮️')}
style={{
backgroundColor: '#eee',
paddingVertical: 30,
paddingHorizontal: 80,
}}
background={Touchable.Ripple('blue')}>
<Text>Hello there!</Text>
</Touchable>
</View>
);
}
}
props
You can use the same props as you would use on TouchableOpacity
, TouchableHighlight
, TouchableNativeFeedback
, and TouchableWithoutFeedback
. Listed below.
fallback
- IfTouchableNativeFeedback
is not available (on iOS and on Android API <= 20 / Android < 5.0), the component specified in this prop is used instead. Defaults toTouchableOpacity
.hitSlop
- use this! pass in an object of the format{ top: number, left: number, right: number, bottom: bottom }
, this makes theTouchable
easier to press by expanding the touchable area by the number of points that you specify on each side, without having to change the layout of theTouchable
, eg: by adding padding.onPress
- fired when you press (touch in, release within bounds).onPressIn
- fired immediately on press in (likeonmousedown
on web)onPressOut
- fired immediately on press out (likeonmouseout
on web)onLongPress
- fired when you press and hold.delayLongPress
- time to wait foronLongPress
to fire.delayPressIn
- time to wait foronPressIn
to firedelayPressOut
- time to wait foronPressOut
to firedisabled
- defaultfalse
, whentrue
the button is disabled.onLayout
- see onLayout documentation on ViewaccessibilityComponentType
- see Accessibility guideaccessibilityTraits
- see Accessibility guidepressRetentionOffset
- see React Native documentation.
Additional props used by TouchableOpacity (default iOS)
activeOpacity
- sets the opacity to animate to when touch is active.
Additional props used by TouchableNativeFeedback (default Android)
background
- customize the touch effect withTouchable.SelectableBackground
,SelectableBackgroundBorderless
, orTouchable.Ripple(color: string, borderless: boolean)
.foreground
- same asbackground
, should be used instead of background if theTouchable
has any images as children and you want the ripple to be rendered above the image (if the image is not opaque,background
will not be visible, you must use foreground)
Additional props used by TouchableHighlight
underlayColor
- the color of the background when touch is active.onHideUnderlay
- fired immediately after the underlay is hiddenonShowUnderlay
- fired immediately after the underlay is shown