Я просмотрел различные посты на SO и github о реагирующей навигации, но большинство из них представляют собой комбинацию встроенного стекового навигатора и навигатора.Я не смог найти ничего, что могло бы помочь решить мою проблему.
Что я пытаюсь сделать, так это то, что у меня есть нижняя панель вкладок с пятью экранами, которые прекрасно загружаются с правильными данными, я хочу добавить навигатор в ящикпредоставить больше экранов и иметь разные данные.Мне удалось построить навигатор ящиков поверх навигатора вкладок, но когда ящик открыт, он перекрывает нижнюю панель вкладок и, следовательно, навигация по нижним вкладкам бесполезна, пока ящик открыт.Кроме того, при добавлении вкладок под навигатором ящика в качестве одного из параметров в меню ящика отображается Tabs
.
Чего я хочу добиться, так это: 1. Иметь навигацию по нижней вкладке, видимую постоянно.2. Когда ящик открыт, меню ящиков открывается и не перекрывает нижнюю панель вкладок.3. А в меню ящика должны быть только те экраны, по которым можно перемещаться из меню ящика.
Ниже мой навигационный код,
import React from 'react'
// Navigators
import { DrawerNavigator, StackNavigator, createBottomTabNavigator } from 'react-navigation'
// TabNavigator screens
import ProfileConnector from '../connectors/ProfileConnector'
import InboxConnector from '../connectors/InboxConnector'
import AttendanceConnector from '../connectors/AttendanceConnector'
import Results from '../layouts/results/Results'
import TimetableConnector from '../connectors/TimetableConnector'
import Icon from 'react-native-vector-icons/Entypo'
import {Dimensions} from 'react-native'
const deviceW = Dimensions.get('window').width
const basePx = 375
function px2dp(px) {
return px * deviceW / basePx
}
import Gallery from '../layouts/gallery/Gallery'
export const Tabs = createBottomTabNavigator({
Profile: {
screen: ProfileConnector,
navigationOptions: {
tabBarLabel: 'Profile',
tabBarIcon: ({tintColor}) => <Icon name="user" size={px2dp(22)} color={tintColor}/>,
},
},
Inbox: {
screen: InboxConnector,
navigationOptions: {
tabBarLabel: 'Inbox',
tabBarIcon: ({tintColor}) => <Icon name="inbox" size={px2dp(22)} color={tintColor}/>,
},
},
Attendance: {
screen: AttendanceConnector,
navigationOptions: {
tabBarLabel: 'Attendance',
tabBarIcon: ({tintColor}) => <Icon name="hand" size={px2dp(22)} color={tintColor}/>,
},
},
Timetable: {
screen: TimetableConnector,
navigationOptions: {
tabBarLabel: 'Timetable',
tabBarIcon: ({tintColor}) => <Icon name="calendar" size={px2dp(22)} color={tintColor}/>,
},
},
Results: {
screen: Results,
navigationOptions: {
tabBarLabel: 'Results',
tabBarIcon: ({tintColor}) => <Icon name="bar-graph" size={px2dp(22)} color={tintColor}/>,
},
},
}, {
initialRouteName: 'Inbox',
tabBarPosition: 'bottom',
swipeEnabled: true,
tabBarOptions: {
activeTintColor: 'teal',
inactiveTintColor: '#424949',
activeBackgroundColor: "white",
inactiveTintColor: '#424949',
labelStyle: { fontSize: 14 },
style : { height : 50}
}
});
export const Drawer = DrawerNavigator({
Tabs: {screen: Tabs},
Gallery: { screen: Gallery },
},{
drawerWidth: 250,
drawerPosition: 'left',
drawerOpenRoute: 'DrawerOpen',
drawerCloseRoute: 'DrawerClose',
drawerToggleRoute: 'DrawerToggle',
})
Может кто-нибудь помочь мне с этим, пожалуйста?
Спасибо, Викрам