当前位置:   article > 正文

一课一得:uniApp--tabBar的使用_uniapp tabbar

uniapp tabbar

        在编写uni项目是,如果应用是一个多tab应用,我们可以通过tabBar配置项指定一级导航栏。以及tab切换时显示的对应页。

        在 pages.json 中提供 tabBar 配置,不仅仅是为了方便快速开发导航,更重要的是在App和小程序端提升性能。在这两个平台,底层原生引擎在启动时无需等待js引擎初始化,即可直接读取 pages.json 中配置的 tabBar 信息,渲染原生tab。

注意点:

  • 当设置 position 为 top 时,将不会显示 icon
  • tabBar 中的 list 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。
  • tabbar 切换第一次加载时可能渲染不及时,可以在每个tabbar页面的onLoad生命周期里先弹出一个等待雪花(hello uni-app使用了此方式)
  • tabbar 的页面展现过一次后就保留在内存中,再次切换 tabbar 页面,只会触发每个页面的onShow,不会再触发onLoad。
  • 顶部的 tabbar 目前仅微信小程序上支持。需要用到顶部选项卡的话,建议不使用 tabbar 的顶部设置,而是自己做顶部选项卡,可参考 hello uni-app->模板->顶部选项卡。
    1. "tabBar": {
    2. "color": "#7A7E83",
    3. "selectedColor": "#3cc51f",
    4. "borderStyle": "black",
    5. "backgroundColor": "#ffffff",
    6. "list": [{
    7. "pagePath": "pages/component/index",
    8. "iconPath": "static/image/icon_component.png",
    9. "selectedIconPath": "static/image/icon_component_HL.png",
    10. "text": "组件"
    11. }, {
    12. "pagePath": "pages/API/index",
    13. "iconPath": "static/image/icon_API.png",
    14. "selectedIconPath": "static/image/icon_API_HL.png",
    15. "text": "接口"
    16. }]
    17. }

    该json格式里,tabBar下面的属性

属性说明:

属性类型必填默认值描述平台差异说明
colorHexColortab 上的文字默认颜色
selectedColorHexColortab 上的文字选中时的颜色
backgroundColorHexColortab 的背景色
borderStyleStringblacktabbar 上边框的颜色,可选值 black/white,也支持其他颜色值App 2.3.4+ 、H5 3.0.0+
blurEffectStringnoneiOS 高斯模糊效果,可选值 dark/extralight/light/none(参考:使用说明App 2.4.0+ 支持、H5 3.0.0+(只有最新版浏览器才支持)
listArraytab 的列表,详见 list 属性说明,最少2个、最多5个 tab
positionStringbottom可选值 bottom、toptop 值仅微信小程序支持
fontSizeString10px文字默认大小App 2.3.4+、H5 3.0.0+
iconWidthString24px图标默认宽度(高度等比例缩放)App 2.3.4+、H5 3.0.0+
spacingString3px图标和文字的间距App 2.3.4+、H5 3.0.0+
heightString50pxtabBar 默认高度App 2.3.4+、H5 3.0.0+
midButtonObject中间按钮 仅在 list 项为偶数时有效App 2.3.4+、H5 3.0.0+
iconfontSrcStringlist设置 iconfont 属性时,需要指定字体文件路径App 3.4.4+、H5 3.5.3+

其中list里面的每一个数组对象代表一个底部导航标签 :其属性值如下:

属性类型必填说明平台差异
pagePathString页面路径,必须在 pages 中先定义
textStringtab 上按钮文字,在 App 和 H5 平台为非必填。例如中间可放一个没有文字的+号图标
iconPathString图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px,当 position 为 top 时,此参数无效,不支持网络图片,不支持字体图标
selectedIconPathString选中时的图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px ,当 position 为 top 时,此参数无效
visibleBoolean该项是否显示,默认显示App (3.2.10+)、H5 (3.2.10+)
iconfontObject字体图标,t于 iconPathApp(3.4.4+)、H5 (3.5.3+)

 注意点:

  • 代码跳转到 tabbar 页面,api只能使用uni.switchTab,不能使用uni.navigateTo、uni.redirectTo;使用navigator组件跳转时必须设置open-type="switchTab"

样例:【复制到pages.json文件,与pages数组同一级】

  1. "tabBar": {
  2. "backgroundColor": "#F8F8F8",
  3. "color": "#8F8F94",
  4. "list": [{
  5. "text": "首页",
  6. "pagePath": "pages/tabBar/Plaza"
  7. // "iconPath": "static/api_select.png", //未选中时的图标
  8. // "selectedIconPath": "static/api.png" //选中后图标
  9. }, {
  10. "text": "文章",
  11. "pagePath": "pages/tabBar/Read"
  12. // "iconPath": "static/A.png", //未选中时的图标
  13. // "selectedIconPath": "static/B.png" //选中后图标
  14. }, {
  15. "text": "发布",
  16. "pagePath": "pages/tabBar/Issue"
  17. // "iconPath": "static/A.png", //未选中时的图标
  18. // "selectedIconPath": "static/B.png" //选中后图标
  19. }, {
  20. "text": "关注",
  21. "pagePath": "pages/tabBar/Attention"
  22. // "iconPath": "static/A.png", //未选中时的图标
  23. // "selectedIconPath": "static/B.png" //选中后图标
  24. }, {
  25. "text": "我的",
  26. "pagePath": "pages/tabBar/My"
  27. // "iconPath": "static/A.png", //未选中时的图标
  28. // "selectedIconPath": "static/B.png" //选中后图标
  29. }]
  30. }

其中:text为显示文本,pagePath为导航路径。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/86417
推荐阅读