react-native - 无法从 React Native 中的 Material Top Bar Navigator 中删除 boxShadow

标签 react-native react-navigation

我正在使用 React Native 导航包中的顶部选项卡导航,该导航包是使用 createMaterialTopTabNavigator() 函数创建的。默认情况下,选项卡栏上有一个框阴影,我想禁用它。这是我的标签屏幕配置代码:

const TabScreen = createMaterialTopTabNavigator(
  {
    "Test one": { screen: TestScreen1 },
    "Test two": { screen: TestScreen2 },
    "Test three": { screen: TestScreen3 },
  },
  {
    tabBarPosition: 'top',
    swipeEnabled: true,
    animationEnabled: true,
    tabBarOptions: {
      upperCaseLabel: false,
      scrollEnabled: true,
      activeTintColor: '#000',
      inactiveTintColor: 'rgb(180, 180, 180)',
      pressColor: 'orange',
      style: {
        boxShadow: 'none',
        backgroundColor: '#fff',
        numberOfLines: 1,
      },
      tabStyle: {
        //
      },
      labelStyle: {
        fontSize: 16,
        textAlign: 'center',
      },
      indicatorStyle: {
        borderBottomColor: 'orange',
        borderBottomWidth: 4,
      },
    },
  }
);

我试图在 tabBarOptions 内的 style 对象中将框阴影设置为 none。这就是我希望框阴影样式的位置。 backgroundColor 属性工作正常,但 boxShadow 和某些其他属性(如 border)似乎根本没有注册。特别是,将 backgroundColor 属性设置为无效颜色实际上会删除 boxShadow,但选项卡栏默认为白色,我不一定要使用它。我还尝试更改 tabStyle 对象内的 boxShadow,这是针对单个选项卡的样式,而不是整个选项卡栏,但得到了相同的结果。如何获得理想的效果?

最佳答案

我已经通过在 style 对象中设置 elevation: 0 来获得所需的行为。显然,标签栏有一个默认的 elevation 值,它会自动给它一个框阴影并覆盖其他与框阴影相关的样式。这是一个仅适用于 Android 的属性,将其设置为 0 可以消除 Android 上的阴影,但在 iOS 上有一个非常细的边框而不是框阴影。这是一个完全不同的问题。如果我找到适用于这两个平台的解决方案,我将更新此答案。

关于react-native - 无法从 React Native 中的 Material Top Bar Navigator 中删除 boxShadow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59859550/

相关文章:

javascript - 在 react 导航中刷新 contentComponent

react-native - 如何以编程方式在 react-native 中截取屏幕截图

reactjs - React Native 删除 Flatlist 中的底部空间

react-native - 是否有正确的方法使用 useNavigation() 钩子(Hook)和 useEffect() 依赖项?

reactjs - 在每个屏幕中显示底部选项卡导航器

json - 需要在 React Native 中动态地将项目添加到抽屉菜单中

android - React native Touch 事件正在通过绝对 View 传递

react-native - 使用 Expo 响应 Native : Generate . apk 和 .ipa

android - 在 React Native 中从 Asyncstorage 数据库获取数据的最佳实践

android - React Native Android SDK 支持版本未找到 Mac