如何在 React Native 中显示底部导航上方的组件?

莫恩汗

我在我的本机应用程序中使用 createBottomTabNavigator。应用程序运行顺利,但我的视图隐藏在底部选项卡导航器后面。我想在 createBottomTabNavigator 上方显示我的所有视图。如何在更改选项卡时将我的所有屏幕显示在底部选项卡上方?

在此处输入图片说明

下面是我的 Home.js 代码。

import Dashboard from './Dashboard';
import Leave from './Leave';
import Hour_Rec from './Hour_Rec';
import Rest_Holiday from './Rest_Holiday';
import Report from './Report';

const Home = createBottomTabNavigator({

    Dashboard: {
        screen: Dashboard,
        navigationOptions: {
            title: "Dashboard",
            tabBarIcon: ({ tintColor }) => (
                <Icon
                    name="gamepad-variant"
                    size={17}
                    color={tintColor} />
            )
        }
    },
    Leave: {
        screen: Leave,
        navigationOptions: {
            tabBarLabel: "Leave",
            tabBarIcon: ({ tintColor }) => (
                <Icon
                    name="movie"
                    size={17}
                    color={tintColor} />
            )
        }
    },
    Hour_Rec: {
        screen: Hour_Rec,
        navigationOptions: {
            tabBarLabel: "HR",
            tabBarIcon: ({ tintColor }) => (
                <Icon
                    name="music-note"
                    size={17}
                    color={tintColor} />
            )
        }
    },
    Rest_Holiday: {
        screen: Rest_Holiday,
        navigationOptions: {
            tabBarLabel: "RH",
            tabBarIcon: ({ tintColor }) => (
                <Icon
                    name="gamepad-variant"
                    size={17}
                    color={tintColor} />
            )
        }
    },
    Report: {
        screen: Report,
        navigationOptions: {
            tabBarLabel: "Report",
            tabBarIcon: ({ tintColor }) => (
                <Icon
                    name="music-note"
                    size={17}
                    color={tintColor} />
            )
        }
    }
});

//Issue: the tab navigator needs to be wrapped inside a stack navigator
export default createStackNavigator({ Home }, { headerMode: "none" });

下面是我的 Dashboard.js 代码

var { height } = Dimensions.get('window');
var box_count = 3;
var box_height = height / box_count;

class Dashboard extends PureComponent {

  static navigationOptions = {
    title: 'Chat',
    headerStyle: { backgroundColor: 'red' },
    headerTitleStyle: { color: 'green' },
  }

  render() {
    return (
      <View style={styles.container}>
            <View style={[styles.box, styles.box1]}>
              <Text style={{ fontSize: 40 }}>Active Leave</Text>
            </View>
            <View style={[styles.box, styles.box2]}>
              <Text style={{ fontSize: 40 }}>Upcoming Leave</Text>
            </View>
            <View style={[styles.box, styles.box3]}>
              <Text style={{ fontSize: 40 }}>Absent status</Text>
            </View>
        </View>
    );
  }
}

const styles = StyleSheet.create({

  box: {
    height: box_height,
    borderRadius:10,
    alignItems: 'center', 
    justifyContent: "center",
  },
  box1: {
    backgroundColor: '#2196F3'
  },
  box2: {
    backgroundColor: '#8BC34A'
  },
  box3: {
    backgroundColor: '#e3aa1a'
  }
});

export default Dashboard;
帕拉斯呵叻

@Moin Khan 提出这个问题是因为您使用的是总屏幕高度并根据它划分按钮高度。总屏幕高度var { height } = Dimensions.get('window');还包括底部选项卡导航器高度。使用 flex 代替屏幕高度,它可以帮助您将内容区域分成相等的部分。

只需像这样改变你的风格:

const styles = StyleSheet.create({
  container: {
    height: "100%"
  },
  box: {
    borderRadius: 10,
    alignItems: "center",
    justifyContent: "center"
  },
  box1: {
    flex: 1,
    backgroundColor: "#2196F3"
  },
  box2: {
    flex: 1,
    backgroundColor: "#8BC34A"
  },
  box3: {
    flex: 1,
    backgroundColor: "#e3aa1a"
  }
});

否则,如果您使用自定义 BottomTabNavigator 或能够获得 BottomTabNavigator 的默认高度,只需减去 box_height 的高度即可

就像你的 bottomTabBar 高度是 30 那么var box_height = (height - 30) / box_count;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React Native Elements:如何在导航栏中显示标题组件?

来自分类Dev

如何在React Native中显示图标?

来自分类Dev

如何在React Native中安装React Native Maps?

来自分类Dev

如何在React Native中让组件控制同级组件?

来自分类Dev

如何在React Native中将组件正确导入到我的导航器中?

来自分类Dev

如何在React Native中导航到类组件中的另一个屏幕

来自分类Dev

如何在React Native中导航到类组件中的另一个屏幕

来自分类Dev

如何在React Native中导航到类组件中的另一个屏幕

来自分类Dev

如何在React Native导航器中禁用向后滑动

来自分类Dev

如何在react-native中隐藏顶部导航栏?

来自分类Dev

如何在 react-native 中访问导航对象

来自分类Dev

如何在React Native中优化图像

来自分类常见问题

如何在React Native中禁用旋转?

来自分类Dev

如何在React Native中渲染对象?

来自分类Dev

如何在React Native中删除警告

来自分类Dev

如何在React Native中传递对象?

来自分类Dev

如何在React Native中刷新屏幕

来自分类Dev

如何在React Native中优化图像

来自分类Dev

如何在 React Native 中缩放图像?

来自分类Dev

如何在React Native中将React导航堆栈标头移动到屏幕底部?

来自分类Dev

如何在React Native中连接JSX组件

来自分类Dev

如何在React Native中实现'FrameLayout'组件?

来自分类Dev

如何在React Native中获取Text组件的行数?

来自分类Dev

如何在React Native中从单独的组件创建对象数组?

来自分类Dev

如何在React Native中实现'FrameLayout'组件?

来自分类Dev

如何在 React Native 中对齐两个组件

来自分类Dev

如何在 React Native 中创建全局布局组件?

来自分类Dev

当在react native中打开键盘时,如何在textinput下面显示组件?

来自分类Dev

如何在React Native中显示动画gif?

Related 相关文章

  1. 1

    React Native Elements:如何在导航栏中显示标题组件?

  2. 2

    如何在React Native中显示图标?

  3. 3

    如何在React Native中安装React Native Maps?

  4. 4

    如何在React Native中让组件控制同级组件?

  5. 5

    如何在React Native中将组件正确导入到我的导航器中?

  6. 6

    如何在React Native中导航到类组件中的另一个屏幕

  7. 7

    如何在React Native中导航到类组件中的另一个屏幕

  8. 8

    如何在React Native中导航到类组件中的另一个屏幕

  9. 9

    如何在React Native导航器中禁用向后滑动

  10. 10

    如何在react-native中隐藏顶部导航栏?

  11. 11

    如何在 react-native 中访问导航对象

  12. 12

    如何在React Native中优化图像

  13. 13

    如何在React Native中禁用旋转?

  14. 14

    如何在React Native中渲染对象?

  15. 15

    如何在React Native中删除警告

  16. 16

    如何在React Native中传递对象?

  17. 17

    如何在React Native中刷新屏幕

  18. 18

    如何在React Native中优化图像

  19. 19

    如何在 React Native 中缩放图像?

  20. 20

    如何在React Native中将React导航堆栈标头移动到屏幕底部?

  21. 21

    如何在React Native中连接JSX组件

  22. 22

    如何在React Native中实现'FrameLayout'组件?

  23. 23

    如何在React Native中获取Text组件的行数?

  24. 24

    如何在React Native中从单独的组件创建对象数组?

  25. 25

    如何在React Native中实现'FrameLayout'组件?

  26. 26

    如何在 React Native 中对齐两个组件

  27. 27

    如何在 React Native 中创建全局布局组件?

  28. 28

    当在react native中打开键盘时,如何在textinput下面显示组件?

  29. 29

    如何在React Native中显示动画gif?

热门标签

归档