侧滑菜单是Android应用常见的组件之一,RN与之对应的组件就是DrawerLayoutAndroid,这是只能在Android平台上使用的组件。
在App中实际应用的时候,我们需要用户不仅可以通过从屏幕边缘通过手势滑出,也可以通过点击菜单按钮主动呼出侧滑菜单。然而RN官方文档并没有提及主动呼出和隐藏侧滑菜单的方法,难道是Facebook当初在实现这个组件的时候没有考虑到这个需求吗?抱着这个疑问,我开始翻DrawerLayoutAndroid相关的源码。
最开始,我找到了DrawerLayoutAndroid组件的源码,地址在:
{RN工程根目录}/node_modules/react-native/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js
一眼看上去好像也没什么,内部最终通过一个叫AndroidDrawerLayout的组件引用Android原生的DrawerLayout来实现的侧滑菜单。直到我看到了在这下面那两个熟悉的方法名:
// 省略之前的代码
/**
* Opens the drawer.
*/
openDrawer: function() {
UIManager.dispatchViewManagerCommand(
this<