как скрыть нижнюю панель на экране внутри stackNavigator реагировать на навигацию - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть простой createBottomTabNavigator, и одна из его вкладок - createStackNavigator, а внутри этого stack у меня есть один экран, который я хочу, чтобы он перекрывал панель вкладок.Я пытался использовать tabBarVisible: false на этом экране, но не повезло.

Код:

const BookingsStack = createStackNavigator({
  Commutes: {
    screen: Commutes,
    navigationOptions: {
      title: "Commutes",
      header: null,
    }
  },
  Tickets: {
    screen: Tickets,
    navigationOptions: {
      title: "Tickets",
      header: null,
      tabBarVisible: false
    }
  }
});

export const MainNav = createBottomTabNavigator({
  Current: {
    screen: Current,
    navigationOptions: {
      title: "Current",
      tabBarIcon: ({ tintColor }) => (
        <IconIO name="ios-bus" size={scale(20)} color={tintColor} />
      )
    }
  },
  BookingsStack: {
    screen: BookingsStack,
    navigationOptions: {
      title: "Commutes",
      tabBarIcon: ({ tintColor }) => (
        <IconSL name="layers" size={scale(20)} color={tintColor} />
      )
    }
  }
}

1 Ответ

0 голосов
/ 21 ноября 2018

Я нашел решение в react-navigation документах - реализация выглядит следующим образом:

const ChildMainNav = createBottomTabNavigator({
  Current: {
    screen: Current,
    navigationOptions: {
      title: "Current",
      tabBarIcon: ({ tintColor }) => (
        <IconIO name="ios-bus" size={scale(20)} color={tintColor} />
      )
    }
  },
  Commutes: {
    screen: Commutes,
    navigationOptions: {
      title: "Commutes",
      tabBarIcon: ({ tintColor }) => (
        <IconSL name="layers" size={scale(20)} color={tintColor} />
      )
    }
  }
}

export const MainNav = createStackNavigator({
  ChildMainNav: {
    screen: ChildMainNav,
    navigationOptions: {
      header: null
    }
  },

  // overlap screens
  Tickets: {
    screen: Tickets,
    navigationOptions: {
      title: "Tickets",
      header: null,
      tabBarVisible: false
    }
  }
});

Идея состоит в том, чтобы добавить навигатор вкладок в навигатор стека и добавить в этот стек любые другие экраны, которые вы хотитеиметь разные navigationOptions, чтобы перекрывать те, что в вашей вкладке.

Ссылка на документы в:

Навигатор вкладок содержит стек, и вы хотите скрыть панель вкладок на определенных экранах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...