rnc-archive / react-native-statusbar

Native module for mutating status bar state
MIT License
78 stars 14 forks source link
andorid ios react react-native

react-native-status-bar

npm package CircleCI Status Supports Android and iOS MIT License code style: prettier

Development is on hold

This project is not actively supported because of this issue. (Current state of events is that the StatusBar stays in the core for now. We're not sure for how long though.)

Getting started

$ npm install @react-native-community/status-bar --save

Mostly automatic installation

$ react-native link @react-native-community/status-bar

Manual installation

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-status-bar and add RNCStatusBar.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNCStatusBar.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  1. Append the following lines to android/settings.gradle:
    include ':@react-native-community_status-bar'
    project(':@react-native-community_status-bar').projectDir = new File(rootProject.projectDir,  '../../node_modules/@react-native-community/status-bar/android')
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
    implementation project(':@react-native-community_status-bar')

Usage

import StatusBar from '@react-native-community/status-bar';

function MyComponent() {
  return (
    <TouchableHighlight
      style={styles.wrapper}
      onPress={() => StatusBar.setHidden(true, "slide")} // or "fade"
    >
      <View style={styles.button}>
        <Text> Hide status bar </Text>
      </View>
    </TouchableHighlight>
  )
}

Api

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 overriden by the one set by the component in the next render.

Constants

currentHeight (Android only) The height of the status bar.

Props

Methods

Type Definitions


Reference

Props

animated

If the transition between status bar property changes should be animated. Supported for backgroundColor, barStyle and hidden.

Type Required
bool No

barStyle

Sets the color of the status bar text.

Type Required
enum('default', 'light-content', 'dark-content') No

hidden

If the status bar is hidden.

Type Required
bool No

backgroundColor

The background color of the status bar.

Type Required Platform
color No Android

translucent

If the status bar is translucent. When translucent is set to true, the app will draw under the status bar. This is useful when using a semi transparent status bar color.

Type Required Platform
bool No Android

networkActivityIndicatorVisible

If the network activity indicator should be visible.

Type Required Platform
bool No iOS

showHideTransition

The transition effect when showing and hiding the status bar using the hidden prop. Defaults to 'fade'.

Type Required Platform
enum('fade', 'slide') No iOS

Methods

setHidden()

static setHidden(hidden: boolean, [animation]: StatusBarAnimation)

Show or hide the status bar

Parameters:

Name Type Required Description
hidden boolean Yes Hide the status bar.
animation StatusBarAnimation No Optional animation when changing the status bar hidden property.

setBarStyle()

static setBarStyle(style: StatusBarStyle, [animated]: boolean)

Set the status bar style

Parameters:

Name Type Required Description
style [StatusBarStyle](
#statusbarstyle) Yes Status bar style to set
animated boolean No Animate the style change.

setNetworkActivityIndicatorVisible()

static setNetworkActivityIndicatorVisible(visible: boolean)

Control the visibility of the network activity indicator

Parameters:

Name Type Required Description
visible boolean Yes Show the indicator.

setBackgroundColor()

static setBackgroundColor(color: string, [animated]: boolean)

Set the background color for the status bar

Parameters:

Name Type Required Description
color color Yes Background color.
animated boolean No Animate the style change.

setTranslucent()

static setTranslucent(translucent: boolean)

Control the translucency of the status bar

Parameters:

Name Type Required Description
translucent boolean Yes Set as translucent.

Type Definitions

StatusBarStyle

Status bar style

Type
$Enum

Constants:

Value Description
default Default status bar style (dark for iOS, light for Android)
light-content Dark background, white texts and icons
dark-content Light background, dark texts and icons (requires API>=23 on Android)

StatusBarAnimation

Status bar animation

Type
$Enum

Constants:

Value Description
none No animation
fade Fade animation
slide Slide animation