The library has been rewritten with Typescript support in version 2.0.0
. This library will work well on both React Native and Expo, please check out the examples folder.
yarn add react-native-toggle-element
# or with npm
npm install react-native-toggle-element
import React, { useState } from "react";
import Toggle from "react-native-toggle-element";
const [toggleValue, setToggleValue] = useState(false);
<Toggle value={toggleValue} onPress={(val) => setToggleValue(val)} />
<Toggle
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
leftTitle="On"
/>
<Toggle
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
leftTitle="Right"
/>
<Toggle
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
leftTitle="Left"
rightTitle="Right"
/>
<Toggle
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
leftComponent={<Icon name="credit" width="30" height="30" fill={"#3BD2B5"} />}
/>
<Toggle
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
rightComponent={<Icon name="plus" width="30" height="30" fill={"#3BD2B5"} />}
/>
<Toggle
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
disabled
leftComponent={
<Icon name="credit" width="30" height="30" fill={Colors.tabIconSelected} />
}
rightComponent={
<Icon name="plus" width="30" height="30" fill={Colors.tabIconSelected} />
}
/>
<ToggleButton
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
thumbActiveComponent={
<Icon name="sun" width="40" height="40" fill={"#3BD2B5"} />
}
thumbInActiveComponent={
<Icon name="night" width="40" height="40" fill={"#03452C"} />
}
trackBar={{
activeBackgroundColor: "#9ee3fb",
inActiveBackgroundColor: "#3c4145",
borderActiveColor: "#86c3d7",
borderInActiveColor: "#1c1c1c",
borderWidth: 5,
width: 100,
}}
/>
<Toggle
disabled
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
leftTitle="Left"
rightTitle="Right"
/>
<Toggle
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
leftTitle="Left"
rightTitle="Right"
trackBar={{
width: 200,
height: 50,
radius: 25,
}}
/>
TrackBarStyle will override Border active color & Border inactive color
<Toggle
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
trackBarStyle={{
borderColor: "green",
}}
trackBar={{
borderWidth: 2,
}}
/>
<Toggle
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
leftTitle="Left"
rightTitle="Right"
thumbButton={{
width: 60,
height: 60,
radius: 30,
}}
/>
<Toggle
disabled
disabledTitleStyle={{ color: "red" }}
disabledStyle={{ backgroundColor: "gray", opacity: 0.3 }}
value={toggleValue}
onPress={(newState) => setToggleValue(newState)}
leftTitle="Left"
rightTitle="Right"
/>
- containerStyle
- disabled
- disabledStyle
- disabledTitleStyle
- leftComponent
- leftTitle
- rightComponent
- rightTitle
- thumbActiveComponent
- thumbInActiveComponent
- thumbStyle
- thumbButton
- trackBar
- trackBarStyle
- animationDuration
Type | Default |
---|---|
React element or component | none |
containerStyle
style for main container
Type | Default |
---|---|
style | none |
disabled
disable the Toggle Button component (optional)
Type | Default |
---|---|
boolean | false |
disabledStyle
styling for Toggle Button Component for disabled (optional)
Type | Default |
---|---|
View style (object) | none |
disabledTitleStyle
styling for leftTitle & right Title(optional) when Toggle Button set with status is disabled(optional). If you want to set disable style for Active & Inactive you should use custom left component or custom right component
Type | Default |
---|---|
Text style (object)) | none |
leftComponent
define your left component here
Type | Default |
---|---|
React element or component | none |
leftTitle
button left title (optional)
Type | Default |
---|---|
string | none |
rightComponent
define your right component here (optional)
Type | Default |
---|---|
React element or component | none |
rightTitle
button right title (optional)
Type | Default |
---|---|
string | none |
thumbActiveComponent
define your thumb button component when status is active (optional)
Type | Default |
---|---|
React element or component | none |
thumbInActiveComponent
define your thumb button component when status is inactive (optional)
Type | Default |
---|---|
React element or component | none |
thumbStyle
thumb button style (optional). Styling will override the value from thumbButton props
Type | Default |
---|---|
View style (object) | none |
thumbButton
define to change size and radius and color depend on active / inactive status (optional)
Type | Default |
---|---|
borderWidth | 0 |
width | 50 |
height | 50 |
radius | 25 |
activeBackgroundColor | #fde2e2 |
inActiveBackgroundColor | #ffb6b6 |
trackBar
define to change size and radius and color depend on active / inactive status (optional)
Type | Default |
---|---|
borderWidth | 0 |
width | 50 |
height | 50 |
radius | 25 |
activeBackgroundColor | #fde2e2 |
inActiveBackgroundColor | #ffb6b6 |
borderActiveColor | transparent |
borderInActiveColor | transparent |
trackBarStyle
trackbar style (optional). Styling will override the value from trackBar props
Type | Default |
---|---|
View style (object) | none |
animationDuration
duration of the thumb button animation (optional).
Type | Default |
---|---|
number | 350 |