i have an idea, maybe it can solve your problem, how if you just use native-base Header for your custom header, and hide navbar from RNRF, i have one example :
First is define the routes
const App = () => {
return (
<Router>
<Scene key="root">
<Scene key="nav" component={MyContainer} title="Navigation" initial={true} hideNavBar>
<Scene key="main" component={ExampleContent} title="MainPage" />
</Scene>
</Scene>
</Router>
);
}
use hideNavBar
in parent scene to hide RNRF Navbar. then make your own Header
class MyHeader extends Component{
render(){
return(
<Header>
<Left/>
<Body>
<Title>Header</Title>
</Body>
<Right />
</Header>
)
}
}
and make content component for child scene
class ExampleContent extends Component{
render(){
return (
<Content>
<Text>This is some content</Text>
</Content>
)
}
}
after that, make the container for wrapping the Header and Content
class MyContainer extends Component{
render(){
const state = this.props.navigationState;
const children = state.children;
return(
<Container>
<MyHeader />
<DefaultRenderer navigationState={children[children.length - 1]} onNavigate={this.props.onNavigate} />
</Container>
)
}
}
Default Renderer
is for render child Scene, so you just create the Content without Container again
this is the full source code :
import React, { Component } from 'react';
import { Router, Scene, DefaultRenderer } from 'react-native-router-flux';
import { Container, Header, Content, Footer, Left, Right, Body, Title, Text } from "native-base";
class MyHeader extends Component{
render(){
return(
<Header>
<Left/>
<Body>
<Title>Header</Title>
</Body>
<Right />
</Header>
)
}
}
class ExampleContent extends Component{
render(){
return (
<Content>
<Text>This is some content</Text>
</Content>
)
}
}
class MyContainer extends Component{
render(){
const state = this.props.navigationState;
const children = state.children;
return(
<Container>
<MyHeader />
<DefaultRenderer navigationState={children[children.length - 1]} onNavigate={this.props.onNavigate} />
</Container>
)
}
}
const App = () => {
return (
<Router>
<Scene key="root">
<Scene key="nav" component={MyContainer} title="Navigation" initial={true} hideNavBar>
<Scene key="main" component={ExampleContent} title="MainPage" />
</Scene>
</Scene>
</Router>
);
}
export default App;
this is the screenshot of that example code

I hope it can be one solution for you, Thanks :)