我正在try 让 map 屏幕覆盖整个屏幕,目前它没有覆盖底部导航器应该在的底部.我使用的是一个定制的底部导航器,所以它不在底部,这就是为什么在底部有一个平淡的空间.我的问题是如何让我的 map 覆盖底部的空白处?

我的代码是:

import React from 'react';
import { StyleSheet, Text, TouchableOpacity, View, Image } from 'react-native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { NavigationContainer } from '@react-navigation/native';
import MapView from 'react-native-maps';
import { Marker } from 'react-native-maps';
import FontAwesome from "@expo/vector-icons/FontAwesome"

const Tab = createBottomTabNavigator();

function HomeScreen() {
  return (
    <View style={styles.mapContainer}>
      <MapView style={styles.map} />
    </View>
  );
}

function SettingsScreen() {
  return (
    <View style={styles.container}>
      <Text>Settings Sn</Text>
    </View>
  );
}

const CustomTabBarButton = ({ children, onPress }) => {
  return (
  <TouchableOpacity
    style={{
      top: -30,
      justifyContent: 'center',
      alignItems: 'center',
      ...styles.shadow
    }}
    onPress={onPress}
  >
    <View style={{
      width: 50,
      height: 50,
      borderRadius: 50,
      backgroundColor: "#355E3B"
    }}>
      {children}
    </View>
  </TouchableOpacity>)
};

export default function Navigation() {
  return (
    <NavigationContainer>
      <Tab.Navigator
            screenOptions={({ route }) => ({
                tabBarIcon: ({ color, focused, size }) => {
                    let icon;
                    if (route.name === "Map") {
                        icon = "map"
                        return <FontAwesome name={icon} size={28} color={color} />
                    } else if (route.name === "Settings") {
                        icon = "cog"
                        return <FontAwesome name={icon} size={28} color={color} />
                    }
                    return null
                },
                tabBarShowLabel: false,
                tabBarIconStyle: {},
                tabBarStyle: [{ 
                  display: "flex",
                  bottom: 20,
                  elevation: 5,
                  borderRadius: 10,
                  marginLeft: 10,
                  marginRight: 10,
                  height: 60
                 }, null],
                tabBarActiveTintColor: "#000000"
            })}
        >
        <Tab.Screen name="Map" component={HomeScreen}  />
        <Tab.Screen
  name="Plus"
  component={HomeScreen}
  options={{
    tabBarIcon: ({ focused }) => (
      <Image source={require('./assets/plus.png')} resizeMode='contain' style={{
        width: 30,
        height: 30
      }} />
    ),
    tabBarButton: (props) => {
      return <CustomTabBarButton {...props} />
    }
  }}
/>
        <Tab.Screen name="Settings" component={SettingsScreen} />
      </Tab.Navigator>
    </NavigationContainer>
  );
}

const styles = StyleSheet.create({
  shadow: {
    shadowColor: '#000000',
    shadowOffset: {
      width: 0,
      height: 10
    },
    shadowOpacity: 0.2,
    shadowRadius: 3.5,
    elevation: 5
  },
  container: {
    flex: 1
  },
  map: {
    width: '100%',
    height: '110%',
  },
  mapContainer: {
    height: '100%'
  }
});

问题的图景:

推荐答案

选项卡栏样式使用absolute个位置.这会将选项卡栏放在其他内容的顶部.

tabBarStyle: {
  position: 'absolute',
  display: 'flex',
  bottom: 20,
  elevation: 5,
  borderRadius: 10,
  marginLeft: 10,
  marginRight: 10,
  height: 60,
}

Javascript相关问答推荐

Codemirsor 6语言包的使用部分是什么?

在具有焦点和上下文的d3多线图表中,如何将上下文的刷新限制在特定日期?

为什么在获取回调内设置状态(不会)会导致无限循环?

为什么我达到了时间限制!?LeetCode链接列表循环(已解决,但需要解释!)

如何解决这个未能在响应上执行json:body stream已读问题?

有Angular 的material .未应用收件箱中的价值变化

使用json文件字符串来enum显示类型字符串无法按照计算的enum成员值的要求分配给类型号

仅圆角的甜甜圈图表

有条件的悲剧

jQuery提交按钮重新加载页面,即使在WordPress中使用preventDefault()

如何在Connect 4游戏中 for each 玩家使用位板寻找7形状?

在vercel throws上部署带有gunjs的sveltekit应用无法找到模块./' lib/文本编码'

为什么按钮会随浮动属性一起移动?

获取Uint8ClampedArray中像素数组的宽度/高度

使用原型判断对象是否为类的实例

使用auth.js保护API路由的Next.JS,FETCH()不起作用

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

有没有一种直接的方法可以深度嵌套在一个JavaScript对象中?

AG-GRIDreact 显示布尔值而不是复选框

react 路由DOM有条件地呈现元素