StatusBar
React Native StatusBar - Part to control the application's status bar. The status bar is the zone, normally at the highest point of the screen, that shows the ongoing time, Wi-Fi and cell network data, battery level or potentially other status symbols.
Usage with Navigator
It is feasible to have numerous StatusBar parts mounted simultaneously. The props will be converged in the request the StatusBar parts were mounted.
import React, { useState } from 'react';
import { Button, Platform, SafeAreaView, StatusBar, StyleSheet, Text, View } from 'react-native';
const STYLES = ['default', 'dark-content', 'light-content'];
const TRANSITIONS = ['fade', 'slide', 'none'];
const App = () => {
const [hidden, setHidden] = useState(false);
const [statusBarStyle, setStatusBarStyle] = useState(STYLES[0]);
const [statusBarTransition, setStatusBarTransition] = useState(TRANSITIONS[0]);
const changeStatusBarVisibility = () => setHidden(!hidden);
const changeStatusBarStyle = () => {
const styleId = STYLES.indexOf(statusBarStyle) + 1;
if (styleId === STYLES.length) {
setStatusBarStyle(STYLES[0]);
} else {
setStatusBarStyle(STYLES[styleId]);
}
};
const changeStatusBarTransition = () => {
const transition = TRANSITIONS.indexOf(statusBarTransition) + 1;
if (transition === TRANSITIONS.length) {
setStatusBarTransition(TRANSITIONS[0]);
} else {
setStatusBarTransition(TRANSITIONS[transition]);
}
};
return (
<SafeAreaView style={styles.container}>
<StatusBar
animated={true}
backgroundColor="#61dafb"
barStyle={statusBarStyle}
showHideTransition={statusBarTransition}
hidden={hidden} />
<Text style={styles.textStyle}>
StatusBar Visibility:{'\n'}
{hidden ? 'Hidden' : 'Visible'}
</Text>
<Text style={styles.textStyle}>
StatusBar Style:{'\n'}
{statusBarStyle}
</Text>
{Platform.OS === 'ios' ? (
<Text style={styles.textStyle}>
StatusBar Transition:{'\n'}
{statusBarTransition}
</Text>
) : null}
<View style={styles.buttonsContainer}>
<Button
title="Toggle StatusBar"
onPress={changeStatusBarVisibility} />
<Button
title="Change StatusBar Style"
onPress={changeStatusBarStyle} />
{Platform.OS === 'ios' ? (
<Button
title="Change StatusBar Transition"
onPress={changeStatusBarTransition} />
) : null}
</View>
</SafeAreaView>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
backgroundColor: '#ECF0F1'
},
buttonsContainer: {
padding: 10
},
textStyle: {
textAlign: 'center',
marginBottom: 8
}
});
export default App;
For cases where using a component is not ideal, there is also an imperative API exposed as static functions on the component. It is however not recommended to use the static API and the component for the same prop because any value set by the static API will get overridden by the one set by the component in the next render.
Constants
currentHeight Android
The height of the status bar, which includes the notch height, if present.
animated
If the transition between status bar property changes should be animated. Supported for backgroundColor, barStyle and hidden properties.
backgroundColor Android
The background color of the status bar.
barStyle
Sets the color of the status bar text.
On Android, this will only have an impact on API versions 23 and above.
hidden
If the status bar is hidden.
networkActivityIndicatorVisible
If the network activity indicator should be visible.
Comments
Post a Comment