简体   繁体   English

MaterialBottomTabNavigator / React-Native / React导航

[英]MaterialBottomTabNavigator / React-Native / React Navigation

im using the Material-Bottom-Tab-Navigatior and would like to get a transparent bar background however my result atm looks like this This is the code 我正在使用Material-Bottom-Tab-Navigatior并想获得透明的条形背景,但是我的结果atm看起来像这样。 这是代码

import React from 'react';
import { createMaterialBottomTabNavigator } from 'react-navigation-material-bottom-tabs';
import Icon from 'react-native-vector-icons/Feather';

import HomePage from '../components/whatsOn/HomePage';
import ComingSoon from '../components/comingSoon/ComingSoon';
import Favourites from '../components/favourites/Favourites';

import config from '../static/config.json';
import texts from '../static/texts.json';

const { gradient } = config.colors;
const { ComingSoonTitle, HomeTitle, FavouritesTitle } = texts.Tabs;
const lang = config.language;

export const TabStack = createMaterialBottomTabNavigator({
  comingSoon: {
    screen: ComingSoon,
    activeTintColor: gradient.primary,
    navigationOptions: {
      tabBarColor: 'transparent',
      tabBarLabel: ComingSoonTitle[lang],
      tabBarIcon: ({ tintColor }) => (<Icon name="calendar" color={tintColor} size={24} />),
    },
  },
  whatsOn: {
    screen: HomePage,
    activeTintColor: gradient.primary,
    navigationOptions: {
      tabBarColor: 'transparent',
      tabBarLabel: HomeTitle[lang],
      tabBarIcon: ({ tintColor }) => (<Icon name="film" color={tintColor} size={24} />),
    },
  },
  favourites: {
    screen: Favourites,
    activeTintColor: gradient.primary,
    navigationOptions: {
      tabBarColor: 'transparent',
      tabBarLabel: FavouritesTitle[lang],
      tabBarIcon: ({ tintColor }) => (<Icon name="star" color={tintColor} size={24} />),
    },
  },
}, {
  shifting: true,
  initialRouteName: 'whatsOn',
  order: ['comingSoon', 'whatsOn', 'favourites'],
  tabBarPosition: 'bottom',
});

this TabStack is nested inside this stack: 此TabStack嵌套在此堆栈内:

export const HomeStack = createStackNavigator({
  Tabs: {
    screen: TabStack,
    navigationOptions: {
      title: 'Compeso',
      header: props => <CustomHeader {...props} />,
      headerStyle: {
        backgroundColor: 'transparent',
      },
      headerTitleStyle: {
        fontSize: 24,
        fontWeight: '500',
        color: colors.typography,
      },
      headerRight: MenuIcon,
      headerLeft: SearchIcon,
      animationEnabled: true,
    },
  },
  Drawer: {
    screen: MoreInfromation,
  },
}, {
  initialRouteName: 'Tabs',
  cardStyle: { backgroundColor: 'transparent' },
});

the HomeStack is nested in a switchNavigator HomeStack嵌套在switchNavigator中

export default class Router extends Component {
  render() {
    return (
       <MainStack />
    );
  }
}

const MainStack = createSwitchNavigator({
  Auth: LoginStack,
  Home: HomeStack,
},
{
  initialRouteName: 'Home',
});

This MainStack is getting rendered in my App.js 这个MainStack正在我的App.js中呈现

I put this tab navigator into a stack navigator and each component that gets displayed shows a scroll view with a height of 815 pixels to make sure the background is behind the bar. 我将此选项卡导航器放入堆栈导航器,显示的每个组件都将显示一个高度为815像素的滚动视图,以确保背景位于条形后面。

Can someone advice ? 有人可以建议吗? Thanks in advance 提前致谢

You need to include barStyle . 您需要包括barStyle So, for transparent the style will be something like this: 因此,为了透明,样式将如下所示:

barStyle: {backgroundColor:'transparent'}

In your code it will look something like this(included at bottom). 在您的代码中,它将看起来像这样(包含在底部)。

export const TabStack = createMaterialBottomTabNavigator({
  comingSoon: {
    ...
  },
  ...
}, {
  shifting: true,
  initialRouteName: 'whatsOn',
  order: ['comingSoon', 'whatsOn', 'favourites'],
  tabBarPosition: 'bottom',
  barStyle: {backgroundColor:'transparent'}
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM