To achieve your first switch example you can look at react-native-switch and tweak it slightly to take a height and width (instead of circle size). I have a working example of this here.

For your second example a simple TouchableOpacity with toggle icon should suffice. You can get a little more elborate and add a color animation if you wanted.

Answer from TnR on Stack Overflow
🌐
React Native
reactnative.dev › docs › switch
Switch · React Native
1 month ago - Invoked when the user tries to change the value of the switch. Receives the change event as an argument.
🌐
Swmansion
docs.swmansion.com › react-native-reanimated › examples › switch
Switch | React Native Reanimated
2 weeks ago - const Switch = ({ value, onPress, style, duration = 400, trackColors = { on: '#82cab2', off: '#fa7f7c' }, }) => { const height = useSharedValue(0); const width = useSharedValue(0); const trackAnimatedStyle = useAnimatedStyle(() => { const color = interpolateColor( value.value, [0, 1], [trackColors.off, trackColors.on] ); const colorValue = withTiming(color, { duration }); return { backgroundColor: colorValue, borderRadius: height.value / 2, }; }); const thumbAnimatedStyle = useAnimatedStyle(() => { const moveValue = interpolate( Number(value.value), [0, 1], [0, width.value - height.value] ); c
Discussions

reactjs - How would I make a Custom Switch and Toggle Like this In react Native - Stack Overflow
I am Trying to make a custom switch in react native expo but all the NPM's components don't seem to work, how would i come about creating a custom switch with animations and a custom toggle like th... More on stackoverflow.com
🌐 stackoverflow.com
After switching from Expo to bare React Native… I’m never going back
After switching from bare react native to expo… I‘m never going back More on reddit.com
🌐 r/reactnative
133
100
October 15, 2025
🏝️ Announcing TanStack Query DevTools for Expo/React Native! 🚀 : reactnative
🌐 r/reactnative
Is it worth converting an existing app to expo?
My team went full circle on this. From fully ejecting 3 years ago to fully reintegrating 1 year ago. Both were the best decisions we ever made for productivity. Now with eas builds, any advantage of being ejected disappeared. Our development flows are much more efficient with a fully expo setup. I’d recommend 10/10. And for what it’s worth, we also had to implement some custom expo plugins, but it was very straightforward and they’ve worked reliably ever since. More on reddit.com
🌐 r/reactnative
14
32
September 10, 2024
🌐
Yeutech-lab
yeutech-lab.github.io › expo-custom-switch
expo-custom-switch
Custom theme toggle with a universal Switch component
🌐
Expo Documentation
docs.expo.dev › expo sdk › ui › jetpack compose › switch
Switch - Expo Documentation
import { useState } from 'react'; import { Host, Switch } from '@expo/ui/jetpack-compose'; export default function ToggleSwitchExample() { const [checked, setChecked] = useState(false); return ( <Host matchContents> <Switch value={checked} onCheckedChange={setChecked} /> </Host> ); }
🌐
React Native Elements
reactnativeelements.com › switch
Switch | React Native Elements
⭐ and join the Discord server! ... Switch represents user's decision of a process and indicates whether a state is on/off. Switch is a controlled component that requires an onValueChange to update the value prop.
🌐
Medium
medium.com › @amolakapadi › how-to-build-a-yes-no-switch-toggle-in-react-native-expo-step-by-step-328920fb8e80
How to build a YES / NO switch toggle in React Native (Expo) — Step-by-Step | by Amol kapadi | Medium
December 4, 2025 - In this short tutorial you’ll learn how to create a clean YES / NO toggle using Expo + React Native, center it both vertically and horizontally, show both labels at all times, and highlight the selected option. Includes full code, explanation, accessibility tips, and simple customization ideas. import React, { useState } from "react"; import { View, Text, Switch, StyleSheet } from "react-native"; export default function App() { const [isEnabled, setIsEnabled] = useState(false); return ( <View style={styles.container}> {/* Title Text */} <Text style={styles.title}>Do you agree?</Text> {/* YES / NO + Switch */} <View style={styles.row}> <Text style={[styles.optionText, !isEnabled && styles.activeText]}>NO</Text> <Switch trackColor={{ false: "#c4c4c4", true: "#81b0ff" }} thumbColor={isEnabled ?
Find elsewhere
🌐
GitHub
github.com › mmusaib › react-native-toggle-input
GitHub - mmusaib/react-native-toggle-input: Customized toggle button input for react native and expo
🟢 Customizable React Native Toggle Switch with easy to use props" Toggle Input Demo · Use the color of your choice · Use bordered or filled toggle switch upon your choice · Works on all the platforms Android, Ios and Web in the same way · Zero dependencies · iOS · Android · Web · Expo ·
Author   mmusaib
🌐
Medium
medium.com › @mutumabrianm › why-i-made-the-switch-to-expo-a-developers-journey-f55afa20632f
Why I Made the Switch to Expo: A Developer’s Journey | by Brian Mutuma | Medium
April 1, 2025 - When starting a new React Native project now, using Expo is the default choice for our team — not because we’re forced to, but because it simply makes more sense for productivity and maintainability. ... If you’re on the fence about Expo, I encourage you to give it a serious try on your next project. The ecosystem has matured significantly, and the tradeoffs are increasingly tilted in Expo’s favor. For me, the switch to Expo wasn’t just about changing tools — it fundamentally changed how I think about mobile development.
🌐
Reddit
reddit.com › r/reactnative › after switching from expo to bare react native… i’m never going back
r/reactnative on Reddit: After switching from Expo to bare React Native… I’m never going back
October 15, 2025 -

Every time I’ve tried using Expo, I end up waiting ages for the bundler to finish or dealing with random build failures that seem to come out of nowhere. The dependency chain feels heavier, and adding native modules or SDKs just introduces another layer of uncertainty.

When I switched to a bare React Native setup, everything instantly felt smoother, bundling was faster, builds were more predictable, and I had full control over my native dependencies. I didn’t have to eject, worry about managed workflows, or constantly patch compatibility issues.

Expo is great for quick prototypes or small apps, but if you want long-term stability and flexibility, bare React Native just feels more production-ready.

Anyone else make the switch and notice the same?

🌐
npm
npmjs.com › package › react-native-switch
react-native-switch - npm
February 21, 2022 - import { Switch } from 'react-native-switch'; export const App = () => ( <Switch value={true} onValueChange={(val) => console.log(val)} disabled={false} activeText={'On'} inActiveText={'Off'} circleSize={30} barHeight={1} circleBorderWidth={3} backgroundActive={'green'} backgroundInactive={'gray'} circleActiveColor={'#30a566'} circleInActiveColor={'#000000'} renderInsideCircle={() => <CustomComponent />} // custom component to render inside the Switch circle (Text, Image, etc.) changeValueImmediately={true} // if rendering inside circle, change state immediately or wait for animation to comple
      » npm install react-native-switch
    
Published   Feb 21, 2022
Version   1.5.1
🌐
Medium
medium.com › @mostsignificant › expo-meets-react-natives-new-architecture-how-to-make-the-switch-370142eee798
Expo Meets React Native’s New Architecture: How to Make the Switch | by Chris @ mostsignificant | Medium
August 17, 2025 - Please use React Native DevTools as your default tool. Tip: Type j in the terminal to open (requires Google Chrome or Microsoft Edge). (NOBRIDGE) WARN 🚨 React Native's New Architecture is always enabled in Expo Go, but it is not explicitly enabled your project app config.
🌐
Expo Documentation
docs.expo.dev › expo sdk › ui › overview
Expo UI - Expo Documentation
SwiftUI: Build native iOS interfaces with SwiftUI components · API-compatible replacements for popular React Native community libraries:
🌐
npm
npmjs.com › package › toggle-switch-react-native
toggle-switch-react-native - npm
November 9, 2021 - Toggle Switch Component for react native, it works on Android, iOS and Web (react-native-web).
      » npm install toggle-switch-react-native
    
Published   Nov 09, 2021
Version   3.3.0
Author   aminebenkeroum
🌐
GitHub
github.com › mymai91 › react-native-toggle-element
GitHub - mymai91/react-native-toggle-element: Switch toggle component for React Native. You can add title, icon, modify component for toggle button. · GitHub
Switch toggle component for React Native. You can add title, icon, modify component for toggle button. - mymai91/react-native-toggle-element
Starred by 178 users
Forked by 20 users
Languages   TypeScript 99.7% | JavaScript 0.3%
🌐
Callstack
oss.callstack.com › switch
Switch | React Native Paper
import * as React from 'react'; import { Switch } from 'react-native-paper'; const MyComponent = () => { const [isSwitchOn, setIsSwitchOn] = React.useState(false); const onToggleSwitch = () => setIsSwitchOn(!isSwitchOn); return <Switch value={isSwitchOn} onValueChange={onToggleSwitch} />; }; export default MyComponent;
🌐
Reddit
reddit.com › r/reactnative › toggle switch button in react native expo applications
r/reactnative on Reddit: Toggle Switch Button In React Native Expo Applications
March 8, 2022 - How to add authentication system in react native expo - using Tabs and Stack navigators · r/reactnative • · r/reactnative · A community for learning and developing native mobile applications using React Native by Facebook. Members · Online · upvotes · · comments · Toggle Switch Button In React Native Expo Applications ·
🌐
GeeksforGeeks
geeksforgeeks.org › react native › react-native-switch-api
React Native Switch API - GeeksforGeeks
February 16, 2026 - The React Native Switch API is a core component used to toggle between two states, typically on and off.