反应导航-在Blurview中包装标题和标签导航器会松开道具

时间:2018-08-02 15:03:02

标签: android ios react-native react-navigation blur

我正在将React Navigation 2用于Expo的一个简单RN项目。我试图在底部显示标题和选项卡,以在模糊的背景上显示,所以我做了一个HOC,用BlurView包装库Header以提供该功能。它使模糊效果很好,但不幸的是,标题,后退按钮等在此过程中丢失了。在React Navigation中有没有办法做到这一点,我使用的代码如下:

const wrappedHeader = props => (
    <BlurView tint="light" intensity={80} style={styles.header}>
        <Header {...props}/>
    </BlurView>
);

class HomeScreen extends React.Component {
    static navigationOptions = {
        header: props => wrappedHeader(props),
        headerTitle: "Home Screen",
    };
   ....
}

1 个答案:

答案 0 :(得分:2)

这是一个棘手的问题,确实让我思考了一段时间。

这是我发现的一种解决方案,可以让本机iOS感觉标签栏导航器

import React from 'react';
import { StyleSheet } from 'react-native';
import { BlurView } from 'expo';
import { BottomTabBar } from 'react-navigation-tabs';

const styles = StyleSheet.create({
  blurView: {
    position: 'absolute',
    bottom: 0,
    left: 0,
    right: 0,
  },
  bottomTabBar: {
    backgroundColor: 'transparent',
  },
});

export default function TabBar(props) {
  return (
    <BlurView tint="light" intensity={90} style={styles.blurView}>
      <BottomTabBar {...props} style={styles.bottomTabBar} />
    </BlurView>
  );
}

问题似乎与BlurView样式有关。

注意:仅在将导航器上的tabBarComponent选项设置为以下内容之后,此代码才有效:

export default createBottomTabNavigator({
  // This part should be different on your side
  Feed: FeedScreen,
  Me: MeScreen,
  Settings: SettingsScreen,
}, {
  tabBarComponent: TabBar,
});

对于标题,我想这肯定是相同的把戏,但是您需要将bottom: 0替换为top: 0