Javascript 使用createDrawerNavigator时如何使页眉滑动?

Javascript 使用createDrawerNavigator时如何使页眉滑动?,javascript,react-native,navigation-drawer,Javascript,React Native,Navigation Drawer,已解决 我找到了一个解决方案,如下面的答案所示 我一直在尝试许多不同的方法来解决这个问题 为了使标题不在抽屉上方,我在DrawerNavigator中嵌套了导航器。 打开标题时(使用属性drawerType:“slide”),它会滑动嵌套导航器的所有内容,但不会滑动标题本身。标题保持其位置,抽屉内容呈现在标题下方 除了在嵌套的导航器中为每个组件分别呈现标题外,还有什么方法可以使标题滑动呢 如果有必要,我会发布我的一些代码,但是如果我必须链接所有可能相关的内容,那将是相当多的。我主要想知道我想要

已解决

我找到了一个解决方案,如下面的答案所示


我一直在尝试许多不同的方法来解决这个问题

为了使标题不在抽屉上方,我在
DrawerNavigator
中嵌套了导航器。 打开标题时(使用属性
drawerType:“slide”
),它会滑动嵌套导航器的所有内容,但不会滑动标题本身。标题保持其位置,抽屉内容呈现在标题下方

除了在嵌套的导航器中为每个组件分别呈现标题外,还有什么方法可以使标题滑动呢

如果有必要,我会发布我的一些代码,但是如果我必须链接所有可能相关的内容,那将是相当多的。我主要想知道我想要的是否可能

提前谢谢

编辑:

在试图重新创建这个问题时(为了提供一个可理解的代码片段),我意识到我实际上已经将标题设置为抽屉导航器的一部分。 我这样做是为了能够使用自定义头,每次尝试在嵌套堆栈中设置头时,都会导致它被抽屉覆盖。要么不出现,要么给抽屉
标题:null
,要么根本不提供任何标题,返回默认(空白)标题,而不是我的自定义标题


我将进一步尝试解决这个问题,并在一天结束之前提供一个代码片段、解决方案或失败的承认。

我最终解决了我的问题。显然,我需要做的是把我的底部标签导航器放在一个stacknavigator中,然后可以放在抽屉里

我试图使代码尽可能密集,以防其他人最终遇到与我相同的问题


标题和屏幕


最好是共享您的代码,即使代码比较长。您总是可以编写一个简短的代码“模型”,其中包括基本部分,但不是您所拥有代码的完全复制/粘贴。看看你是否需要编写示例的指南。谢谢,我会的@Das_GeekI明天会带着一段代码回来。
const Header = () => <View style={{height: 50, width: '100%', backgroundColor: 'yellow'}}></View>

const Screen = ({color, navigation}) => {
  return (
    <View style={{flex: 1, backgroundColor: color}}>
      <TouchableOpacity onPress={() => navigation.toggleDrawer()}>
        <View style={{backgroundColor: 'white', width: 50, height: 50}}></View> 
      </TouchableOpacity>
    </View>
  );
}
const Bottom = createBottomTabNavigator(
{
  ScreenOne: {
    screen: props => <Screen color='green' {...props} />
  },
  ScreenTwo: {
    screen: props => <Screen color='yellow' {...props} />
  }
},
{
  initialRouteName: 'ScreenOne',
  tabBarOptions: {
    activeTintColor: "blue",
    inactiveTintColor: "grey",
  },
  navigationOptions: {
    header: () => <Header />
  }
});

const Main = createStackNavigator(
{
  BottomTab: Bottom
});
const DrawerNavigator = createDrawerNavigator(
{
  MainFlow: {
    screen: Main,
    navigationOptions: {
      header: null
    }
  }  
},
{
  hideStatusBar: false,
  drawerType: 'slide',
  drawerBackgroundColor: 'rgba(255,255,255,.9)',
  overlayColor: 'rgba(0,0,0,0)',
  drawerLockMode: 'locked-open',
  contentOptions: {
    activeTintColor: '#fff',
    activeBackgroundColor: '#6b52ae',
  },
  navigationOptions: {
    header: null
  }
});

export const AppContainer = createAppContainer(DrawerNavigator);