簡體   English   中英

在靜態布局中反應導航選項卡導航器

[英]react navigation tab navigator inside static layout

我可以實現這種布局嗎?

布局草圖:

在此處輸入圖片說明

標題部分在所有選項卡之間共享。 它是此屏幕中布局的一部分。 每個選項卡都包含一個滾動視圖。

順便說一句,我已經嘗試將選項卡導航器定義為一個組件,並在渲染方法中使用它,以及靜態標題組件。

render() {
  return ( 
    <StaticHeaderComponent />
    <MyTabNavigator />
  ) 
}

這是行不通的。 標簽導航器根本不呈現。

這是一個簡單的工作示例:

MyTabNavigator.js

import React, { Component } from 'react'
import { View, Text, ScrollView } from 'react-native'
import { TabNavigator } from 'react-navigation'

class FirstTab extends Component {
    render() {
        return (
            <ScrollView>
                <Text>first tab</Text>
            </ScrollView>
        )
    }
}

class SecondTab extends Component {
    render() {
        return (
            <ScrollView>
                <Text>second tab</Text>
            </ScrollView>
        )
    }
}

const MyNavigator = TabNavigator({
    first: { screen: FirstTab },
    second: { screen: SecondTab }
},
{
    tabBarPosition: 'top'
})

export default MyNavigator

應用程序.js

import React, { Component } from 'react'
import { View } from 'react-native'
import MyTabNavigator from './MyTabNavigator'

export default class App extends Component {
    render() {
        return (
            <View style={{flex: 1}}>
                <View // place your StaticHeaderComponent here
                    style={{height: 100, backgroundColor: 'green'}}
                />
                <MyTabNavigator/>
            </View>
        )
    }
}

對於 react-navigation 3.+,文檔的常見錯誤部分會派上用場。 您可以在此處找到文檔和示例。

具體來說,您需要公開static router並將navigation作為道具傳遞。 您可以根據需要進一步自定義選項卡樣式。

const TabbyNavigator = createMaterialTopTabNavigator({   
  Tab: TabScreen,   
  AnotherTab: AnotherTabScreen
});

class SomeScreen extends React.Component {   
  static router = TabbyNavigator.router;

  render() {
    return (
      <TabbyNavigator navigation={this.props.navigation} />
    );   
  } 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM