900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > RN新手上路-----底部导航栏图标设置

RN新手上路-----底部导航栏图标设置

时间:2018-12-01 14:08:39

相关推荐

RN新手上路-----底部导航栏图标设置

RN增加底部导航栏图标(新手上路)

刚接触react navigation,想实现一个底部导航栏,发现只有title,没有图标,这哪成呀??

要实现它,首先就要先用那个react-navigation,因为我要实现的是底部导航栏(TabNavigation),所以根据官网要求,先下载一系列的包吧,其中最主要的包是@react-navigation/native , @react-navigation/bottom-tabs(这个包是因为我要用的是底部导航栏,若要用抽屉,或者栈,要安装另外的包),还有一系列的包。

总之,要安装:

npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view @react-navigation/native @react-navigation/bottom-tabs

代码如下:

创建一个底部导航对象

创建导航器根组件

4.此时的运行结果:

因为未加底部导航栏图标,所以我增加了一个组件,命名为Logo,暂时先别不管这里面写了什么

增加属性setOptions

在NavigationContainer中的Navigator下增加setOptions(这里可以注意一下,在Navigator下面也有个options,我用它定义了title属性为”食物“,如上代码),

在setOptions里面,有个对象tabBarIcon,给他返回一个组件(可以返回一个size,以控制图标大小,color控制颜色,还有一个focused):

<Logo/>就是我新增的图标组件,其中代码:

这样一增加后,运行效果:

注意:::我在Logo组件里面使用的是Image,意思就是,在用样式的时候注意color属性,不要直接用(可以间接用)

目前为止,基本的已经实现了

优化:

按照官网上说的,可以通过route判断导航页面(通过name属性),目前。我有两个导航页,一个food,一个movie,通过route.name判断导航页,然后判断点击与否(三目运算),点击就将iconname赋值为对应的值,然后将iconname传给<Logo/>,通过logo判断是要返回那张图片,<Logo/>代码如下:

这里通过props结构赋值获取到name属性,通过三目运算判断取哪张图片。

最后的运行结果:

【附上官网】/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。