Hi Guys, I this article, we are creating a Custom Progress bar in React-Native. There are many dependencies and plugins available to display the Progress bar but if a developer wants to customize these progress bar then it’s very complex to do this. So I create a simple Progress bar to display the percentage. In this example, I have created a custom js component with the name PercentagBar.js and import it into the Dashboard screen. let’s understand with an example.
1. Create a new Project
react-native init ProjectName
I have already created a project so just create a custom component that will have to import on the Dashboard screen
2. PercentageBar.js
Here the source code for the progress percentage bar in react native. I am using const function with react native hooks in this example
As you can see, I have added two views one above another the bottom view is for background purpose and another view which is above with position absolute. also I added percentage Text below the second view
import React, {useState} from 'react'; import {StyleSheet, Text, View, TouchableOpacity} from 'react-native'; const PercentageBar = ({ navigation, percentage, height, backgroundColor, completedColor, }) => { const [getPercentage, setPercentage] = useState(percentage); const [getheight, setHeight] = useState(height); const [getBackgroundColor, setBackgroundColor] = useState(backgroundColor); const [getCompletedColor, setCompletedColor] = useState(completedColor); return ( <View> <View style={{justifyContent: 'center'}}> <View style={{ width: '100%', height: getheight, marginVertical: 10, borderRadius: 5, borderColor: getBackgroundColor, borderWidth: 1, }} /> <View style={{ width: getPercentage ? getPercentage : 0, height: getheight, marginVertical: 10, borderRadius: 5, backgroundColor: getCompletedColor, position: 'absolute', bottom:20 }} /> <View style={{ width: getPercentage ? getPercentage : 0, height: getheight, bottom:10 }}> <Text style={{textAlign: 'right'}}>{getPercentage}</Text> </View> </View> </View> ); }; export default PercentageBar;
3. Import Progressbar on Dashboard.js
As you can see in the above code, to display the Custom Progress bar in React-Native You have to pass mandatory fields height, background color, Completed color, percentage.
- Height: Use to set the specific height to Progress Bar.
- BackgroundColor: Use to set background color & Border color to Progress Bar.
- CompletedColor: Use to set completed progress percentage color.
- Percentage: Use to set progress percentage.
import React, {useState} from 'react'; import {StyleSheet, Text, View, TouchableOpacity} from 'react-native'; import PercentageBar from './PercentageBar'; export default function Dashboard({navigation}) { const onSelectSwitch = index => { alert('Selected index: ' + index); }; return ( <View style={{alignItems: 'center'}}> <Text style={{fontSize: 25, margin: 20, textAlign:'center'}}> React native progress bar </Text> <View style={{width: '80%', justifyContent: 'center'}}> <PercentageBar height={20} backgroundColor={'grey'} completedColor={'blue'} percentage={'65%'} /> </View> </View> ); }
4. Output:
Check this output, you can easily use this component in your project also you can easily customize this component as per your requirements
Thank you 🙂