私はreact-navigation
のcreateMaterialTopTabNavigator
を使用しており、その上にいくつかのコンポーネントを追加してタブバーをカスタマイズしようとしています。
あなたがここでそのガイドで見ることができるように:
https://reactnavigation.org/docs/en/material-top-tab-navigator.html#docsNav
tabBarComponent
というオプションがあり、これを渡して独自のタブバーを作成できます。しかし、それは私が望むものではないタブバーを完全に上書きします。
タブバーの上部にカスタムコンポーネントを追加し、その下にラベルが付いたデフォルトのタブを用意します。
誰かがコンポーネントをタブバーに追加する方法の例を教えてもらえますか?
たとえば、次のコードはタブをMy Custom Component
テキストに置き換えますが、両方を使用するにはどうすればよいですか? (カスタムコンポーネントとタブ)
const myNavigation = createMaterialTopTabNavigator({
firstTab: FirstTabScreen,
secondTab: SecondTabScreen,
thirdTab: ThirdTabScreen,
},
{
tabBarComponent: props => (
<View><Text>My Custom Component</Text></View>
)
});
非常に簡単なアプローチは、反応からフラグメントを使用することです。それは問題を解決します。
import React, {Fragment} from 'react';
そして、コンポーネントのリターンは次のようになります
return (
<Fragment>
<MyCustomHeader/>
<MaterialTopTabBar/>
</Fragment>
)
次のように、既存の上部タブバーに独自のカスタムコンポーネントを追加できます。
import { createMaterialTopTabNavigator, MaterialTopTabBar } from "react-navigation";
tabBarComponent: props => <SafeAreaView>
<MyCustomHeader title='test' />
<MaterialTopTabBar {...props} />
</SafeAreaView>