标签栏背景颜色没有改变

时间:2018-01-04 08:05:26

标签: android react-native jsx react-navigation tabnavigator

我是React-Native开发的新手。 我正在使用 TabNavigator 来自' react-navigation '对于 React-Native 中的标签栏,一切正常,除了标签栏activeBackgroundColor和inactiveBackgroundColor在android中没有改变。 它只显示蓝色,如下图所示。

enter image description here

我使用的代码是:

import React, { Component } from 'react';
import { TabNavigator } from 'react-navigation';
import { PixelRatio } from 'react-native';

import { ColorScheme } from '../Resources/ColorScheme';
import {Fonts} from '../Resources/Fonts';

import TAB1 from '../Screens/TAB1'
import TAB2 from '../Screens/TAB2'
 /** */
 var FONT_SIZE = 8;
 if (PixelRatio.get() === 2) {
  FONT_SIZE=10
 }else if (PixelRatio.get() === 3) {
    FONT_SIZE=12
  }

export default FavoritesScreenTabNavigator=TabNavigator({
    TAB1:{screen:TAB1},
    TAB2:{screen:TAB2}
  },{
      tabBarPosition:'top',
      swipeEnabled:true,
      animationEnabled:true,
      tabBarOptions:{
          activeTintColor:ColorScheme.tabBarSelectedTintColor,
          inactiveTintColor:ColorScheme.tabBarUnSelectedTintColor,
          activeBackgroundColor:'white',
          inactiveBackgroundColor:'white',
          labelStyle:{
            fontSize: FONT_SIZE,
            fontFamily: Fonts.QuicksandBold,
            textAlign:'center'
          },
          indicatorStyle: {
            borderBottomColor:ColorScheme.tabBarSelectedTintColor,
            borderBottomWidth: 3,
          }
      },
  }
)

任何帮助将不胜感激。

提前致谢。

4 个答案:

答案 0 :(得分:2)

感谢大家的帮助,但style为我做了神奇的事 它将标签颜色从蓝色更改为白色(我想要的颜色) 通过@Val共享link找到答案 只需在代码中添加这3行就改变了设计:

tabBarOptions:{
      //other properties
      pressColor: 'gray',//for click (ripple) effect color
      style: {
        backgroundColor: 'white',//color you want to change
      }
  }

现在标签栏看起来像:

enter image description here

发布答案,因为它可能有助于某人。

答案 1 :(得分:1)

我从未使用过TabNavigator,但就文档描述的tabBarOptions而言,activeBackgroundColorinactiveBackgroundColor仅支持iOS。 As seen here

我猜你必须自己添加Android的行为。基于此GitHub Issue

的世博小吃

Direct link to the expo

答案 2 :(得分:1)

请参阅github react-native issue 1485,它是一个错误(in)activeBackgroundColor无法在Android上运行。

我的解决方法是使用indicatorStyle来模拟示例代码:

注意:请记得添加...TabNavigator.Presets.AndroidTopTabs,如果没有此指标可能无效。

tabBarOptions: {
    ...TabNavigator.Presets.AndroidTopTabs,
    indicatorStyle: {
        backgroundColor: mainBackgroundColor,
        borderColor: 'rgb(189,189,189)',
        borderWidth: 1,
        borderBottomWidth: 0,
        borderRadius: 5,
        borderBottomLeftRadius: 0,
        borderBottomRightRadius: 0,
    }
}

我的项目看起来很好。 (参见Camera / NVR标签)

enter image description here

答案 3 :(得分:0)

我更新了Val's answer

 tabBarOptions:{
      //other properties
      pressColor: 'gray',//for click (ripple) effect color
      style: {
        backgroundColor: 'white',//color you want to change
      },
      indicatorStyle: {
        backgroundColor: 'your indicator background color',
        height: '100%',
        borderBottomColor: 'your indicator bottom bar color',
        borderBottomWidth: 1
      },
  }

hack是height的价值!