Reactjs 反应本机:标题需要位于createMaterialTopTabNavigator的顶部
我在createMaterialTopTabNavigator(反应导航)方面遇到一些问题。我想让我的选项卡导航器位于标题下方,但当前的显示方式如下: 我不知道如何将标题向下移动,因为我需要标题位于选项卡导航器上方。以下是该部分的主要代码:Reactjs 反应本机:标题需要位于createMaterialTopTabNavigator的顶部,reactjs,react-native,header,react-navigation,tabnavigator,Reactjs,React Native,Header,React Navigation,Tabnavigator,我在createMaterialTopTabNavigator(反应导航)方面遇到一些问题。我想让我的选项卡导航器位于标题下方,但当前的显示方式如下: 我不知道如何将标题向下移动,因为我需要标题位于选项卡导航器上方。以下是该部分的主要代码: const EmptyLegsNavigator = createStackNavigator( { MainEmptyLegsScreen: { screen: MainEmptyLegScreen, }, Sec
const EmptyLegsNavigator = createStackNavigator(
{
MainEmptyLegsScreen: {
screen: MainEmptyLegScreen,
},
SecondaryScreen: {
screen: SecondaryScreen,
},
},
{
defaultNavigationOptions: {
title: 'Empty Legs',
headerStyle: {
backgroundColor: '#eee',
},
},
},
);
const QuotesNavigator = createStackNavigator(
{
MainQuotesScreen: {
screen: MainQuoteScreen,
},
},
{
defaultNavigationOptions: {
title: 'Quotes',
headerStyle: {
backgroundColor: '#eee',
},
},
},
);
const FlightsNavigator = createStackNavigator(
{
MainFlightsScreen: {
screen: MainFlightScreen,
},
},
{
defaultNavigationOptions: {
title: 'Flights',
headerStyle: {
backgroundColor: '#eee',
},
},
},
);
const RegisterNavigator = createStackNavigator(
{
Register: RegisterScreen,
},
{
defaultNavigationOptions: {
title: 'Register',
headerStyle: {
backgroundColor: '#eee',
},
},
},
);
const LoginNavigator = createStackNavigator(
{
Login: LoginScreen,
},
{
defaultNavigationOptions: {
title: 'Login',
headerStyle: {
backgroundColor: '#eee',
},
},
},
);
const tabScreenConfig = {
EmptyLegs: {
screen: EmptyLegsNavigator,
navigationOptions: {
title: 'Empty Legs',
tabBarIcon: tabInfo => {
return <Icon name="airport" size={25} color="black" />;
},
tabBarColor: '#eee',
},
},
Quotes: {
screen: QuotesNavigator,
navigationOptions: {
title: 'Quotes',
tabBarIcon: tabInfo => {
return <Icon name="airplane" size={25} color="black" />;
},
tabBarColor: '#ddd',
},
},
Flights: {
screen: FlightsNavigator,
navigationOptions: {
title: 'Flights',
tabBarIcon: tabInfo => {
return <Icon name="airplane-takeoff" size={25} color="black" />;
},
tabBarColor: '#ccc',
},
},
};
const MainTabNavigator =
createMaterialTopTabNavigator(tabScreenConfig, {
tabBarOptions: {},
});
const MainNavigator = createDrawerNavigator(
{
Main: MainTabNavigator,
Register: RegisterNavigator,
Login: LoginNavigator,
},
{
contentOptions: {
activeTintColor: 'red',
},
},
);
export default createAppContainer(MainNavigator);
const EmptyLegsNavigator=createStackNavigator(
{
主屏幕:{
屏幕:主清空屏幕,
},
第二屏幕:{
屏幕:第二屏幕,
},
},
{
默认导航选项:{
标题:"空腿",,
头型:{
背景颜色:“#eee”,
},
},
},
);
const QuotesNavigator=createStackNavigator(
{
主报价屏幕:{
屏幕:MainQuoteScreen,
},
},
{
默认导航选项:{
标题:"引用",,
头型:{
背景颜色:“#eee”,
},
},
},
);
const FlightsNavigator=createStackNavigator(
{
主飞行屏幕:{
屏幕:MainFlightScreen,
},
},
{
默认导航选项:{
标题:"航班",,
头型:{
背景颜色:“#eee”,
},
},
},
);
const RegisterNavigator=createStackNavigator(
{
注册表:注册表屏幕,
},
{
默认导航选项:{
标题:'登记',
头型:{
背景颜色:“#eee”,
},
},
},
);
const LoginNavigator=createStackNavigator(
{
登录:LoginScreen,
},
{
默认导航选项:{
标题:“登录”,
头型:{
背景颜色:“#eee”,
},
},
},
);
常量选项卡屏幕配置={
空瓶:{
屏幕:清空导航器,
导航选项:{
标题:"空腿",,
tabBarIcon:tabInfo=>{
返回;
},
tabBarColor:“#eee”,
},
},
引述:{
屏幕:QuotesNavigator,
导航选项:{
标题:"引用",,
tabBarIcon:tabInfo=>{
返回;
},
tabBarColor:“#ddd”,
},
},
航班:{
屏幕:FlightsNavigator,
导航选项:{
标题:"航班",,
tabBarIcon:tabInfo=>{
返回;
},
tabBarColor:“#ccc”,
},
},
};
常量MainTabNavigator=
createMaterialTopTabNavigator(选项卡屏幕配置{
选项卡选项:{},
});
const main navigator=createDrawerNavigator(
{
Main:MainTabNavigator,
注册人:注册人,
登录名:LoginNavigator,
},
{
内容选项:{
activeTintColor:'红色',
},
},
);
导出默认createAppContainer(MainNavigator);
谢谢你的帮助 您必须在根组件的顶部添加填充。 您当然有一个App.js文件,可以在其中导入MainNavigator
...
import MainNavigator from 'yourMainNavigatorfile'
class App extends React.Component {
...
render(){
return (
<View style={paddingTop:20}> {/* You can use another paddingTop value depending of your screen size or Constants.statusBarHeight if you use Expo*/}
<MainNavigator/>
</View>
)
}
}
。。。
从“YourMainNavigator文件”导入MainNavigator
类应用程序扩展了React.Component{
...
render(){
返回(
{/*根据屏幕大小或常数,您可以使用另一个paddingTop值。如果使用Expo*/},则可以使用statusBarHeight
)
}
}
您可以使用SafeAreaView而不是paddingTop
import React, { Component } from 'react';
import {
SafeAreaView, View,
} from 'react-native';
import MainNavigator from './yourMainNavigatorfilePath'
class App extends Component {
...
render() {
return (
<SafeAreaView>
<MainNavigator />
</SafeAreaView>
OR
<View>
<SafeAreaView>
<MainNavigator />
</SafeAreaView>
</View>
);
}
}
export default App;
import React,{Component}来自'React';
进口{
安全区域视图,视图,
}从“反应本机”;
从“/YourMainNavigator文件路径”导入MainNavigator
类应用程序扩展组件{
...
render(){
返回(
或
);
}
}
导出默认应用程序;
你好!谢谢你的帮助。这就解决了缺口的问题,并且正确地显示了条,但是标签仍然在标题的顶部,这就是我需要解决的问题。标题必须位于选项卡的顶部!你能分享一下你是如何添加标签和标题的吗?所以我可以帮你更多的忙。嘿!我已经在上面的代码中添加了如何添加选项卡和标题。首先,我在侧面添加了主抽屉的选项。然后,在MainTabNavigator中,我添加了顶部选项卡导航器和我需要的选项卡,每个选项卡都有一个堆栈,我将在将来添加新屏幕。您好!谢谢你的帮助。这就解决了缺口的问题,并且正确地显示了条,但是标签仍然在标题的顶部,这就是我需要解决的问题。标题必须位于选项卡的顶部!