A platform-agnostic drawer layout. It uses a pure JavaScript implementation on every platform to ensure consistency. We try to keep it up to date with the implementation of DrawerLayoutAndroid and add features we consider necessary as well.
- Run
npm install react-native-drawer-layout --save
- Import the component by using one of these:
var DrawerLayout = require('react-native-drawer-layout').default;
import DrawerLayout from 'react-native-drawer-layout';
- Follow the DrawerLayoutAndroid docs -- the API is the same. Everything that differs is explained below
This includes the differences between our implementation and the official one DrawerLayoutAndroid. Every breaking change is (hopefully) hidden behind a feature flag, so that this implementation may also be used as polyfill.
To run the demo, please run npm install
in the DrawerLayoutExample/
directory and start the demo up from there like any other React Native application.
React Native Version | react-native-drawer-layout Version |
---|---|
>= 11 & < 23 | < 1.0 |
>= 23 | >= 1.0 && < 2.0 |
>= 35 | >= 2.0 |
If you experience any further restrictions with other versions, please let us know.
- Currently, there is no support for setting the status bar color in iOS. If you know any workaround, we would be glad to see an idea or a PR.
- The overlay to close the drawer has a
zIndex
of 1000 so setting a higherzIndex
somewhere else may lead to inconsistencies.
- This version may only be used with React Native >= 0.35. For discussion see #44
- This version may only be used with React Native >= 0.25
- The StatusBar is no longer dimmed by sliding the drawer layout automatically. To avoid this change you may use StatusBarIOS.setHidden in the onDrawerSlide callback.
Please make sure to run the tests before proposing a PR by running npm test
.