gxsshallot / react-native-pure-navigation-bar

A fully customizable navigation bar in React Native.
MIT License
96 stars 19 forks source link

自定义title #14

Closed xuxichen closed 5 years ago

xuxichen commented 5 years ago

你好,我看你的截图发现你有自定义搜索栏,但我在你的example里并没有发现有相关的例子,想请教一下你是怎么做的

gxsshallot commented 5 years ago

@xuxichen example里没有自定义的样例,这是我实际公司项目的截图。自定义Title很简单,就是在属性中,给title传入一个视图,例如:<NaviBar title={(<View>...</View>)} />

xuxichen commented 5 years ago

嗯嗯,我看了源码。谢谢了,你这个很好用。虽然我也是在用navigation,不过我建议你回退事件不要和navigation绑定,耦合性太高了。应该给不是用navigation比如route-flux的人有扩展的余地。而且navigation版本也不是很稳定。有些API在低版本没有或者换了API。

gxsshallot commented 5 years ago

@xuxichen 绑定的是默认导出的NaviBar,如果想不用react-navigation,可以直接import {InnerNaviBar} from ...,这个是内部原始视图,没有绑定withNavigation

xuxichen commented 5 years ago

201行左侧返回按钮事件里的调用和生命周期里你监听的都是navigation的吧。

gxsshallot commented 5 years ago

@xuxichen 是的,但是可以通过自定义的onLeft={(index) => {... return false;}}返回false来规避这个默认操作,而且就算没有规避,也不会崩溃,就是没啥反应。。毕竟react-navigation用的人还是最多的。。

xuxichen commented 5 years ago

嗯嗯,还想请教一下,110行的这句代码里edge = Math.max(this.state.left || 0, this.state.right || 0); 这个this.state.left的值是从哪里来的?

gxsshallot commented 5 years ago

@xuxichen 是在_renderButtonsViewonLayout调用的_onButtonsLayoutChanged方法里设置的。