在iPhone X模拟器上运行应用程序时,Material Top Tab Navigator会切入凹口和底部按钮。
为了解决这个问题,我尝试在应用应用程序容器之前实现SafeAreaView,并将每个单独的屏幕 Package 在SafeAreaView中。这可以使文本远离这些区域,但不会远离导航器。
import React, { Component } from 'react';
import { Text, View } from 'react-native';
import { createAppContainer, createMaterialTopTabNavigator, SafeAreaView } from 'react-navigation';
class Calculator extends Component {
render() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Calculator!</Text>
</View>
);
}
}
class Camera extends Component {
render() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Camera!</Text>
</View>
);
}
}
class Solution extends Component {
render() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Solution!</Text>
</View>
);
}
}
const TabNavigator = createMaterialTopTabNavigator(
{
Calculator,
Camera,
Solution
},
{
tabBarPosition: 'bottom',
}
);
const AppContainer = createAppContainer(TabNavigator);
class App extends Component {
render() {
return (
<SafeAreaView>
<AppContainer/>
</SafeAreaView>
);
}
}
export default App;
运行此应用程序时,不存在任何错误。但是,没有任何渲染。我所期望的是一个标签导航器呈现三个标签,不削减下的缺口或底部按钮。
3条答案
按热度按时间q9rjltbz1#
给予
SafeAreaView
一个大小如果AppContainer仍然展开全屏,
更改
import { SafeAreaView } from 'react-navigation'
至
import { SafeAreaView } from 'react-native'
wgmfuz8q2#
您需要将
flex: 1
作为样式提供给SafeAreaView
组件kknvjkwl3#
对于我的情况,这是我需要的进口