QQ小程序 自定義 tabBar

2020-07-02 15:45 更新

自定義 tabBar 可以讓開發(fā)者更加靈活地設(shè)置 tabBar 樣式,以滿足更多個(gè)性化的場(chǎng)景。 在自定義 tabBar 模式下

  • 為了保證低版本兼容以及區(qū)分哪些頁(yè)面是 tab 頁(yè),tabBar 的相關(guān)配置項(xiàng)需完整聲明,但這些字段不會(huì)作用于自定義 tabBar 的渲染。
  • 此時(shí)需要開發(fā)者提供一個(gè)自定義組件來(lái)渲染 tabBar,所有 tabBar 的樣式都由該自定義組件渲染。推薦用 fixed 在底部的 <cover-view> + <cover-image> 組件渲染樣式,以保證 tabBar 層級(jí)相對(duì)較高。
  • 與 tabBar 樣式相關(guān)的接口,如 qq.setTabBarItem 等將失效。
  • 每個(gè) tab 頁(yè)下的自定義 tabBar 組件實(shí)例是不同的,可通過(guò)自定義組件下的 getTabBar 接口,獲取當(dāng)前頁(yè)面的自定義 tabBar 組件實(shí)例。

注意:如需實(shí)現(xiàn) tab 選中態(tài),要在當(dāng)前頁(yè)面下,通過(guò) getTabBar 接口獲取組件實(shí)例,并調(diào)用 setData 更新選中態(tài)??蓞⒖嫉撞康拇a示例。

使用流程

1. 配置信息

app.json 中的 tabBar 項(xiàng)指定 custom 字段,同時(shí)其余 tabBar 相關(guān)配置也補(bǔ)充完整。 所有 tab 頁(yè)的 json 里需聲明 usingComponents 項(xiàng),也可以在 app.json 全局開啟。 示例:

{
  "tabBar": {
    "custom": true,
    "color": "#000000",
    "selectedColor": "#000000",
    "backgroundColor": "#000000",
    "list": [
      {
        "pagePath": "page/develop/miniprogram/develop/miniprogram/component/index",
        "text": "組件"
      },
      {
        "pagePath": "page/develop/miniprogram/API/index",
        "text": "接口"
      }
    ]
  },
  "usingComponents": {}
}

2. 添加 tabBar 代碼文件

在代碼根目錄下添加入口文件:

custom-tab-bar/index.js
custom-tab-bar/index.json
custom-tab-bar/index.qml
custom-tab-bar/index.qss

3. 編寫 tabBar 代碼

用自定義組件的方式編寫即可,該自定義組件完全接管 tabBar 的渲染。另外,自定義組件新增 getTabBar 接口,可獲取當(dāng)前頁(yè)面下的自定義 tabBar 組件實(shí)例。

示例代碼

// page/index/index.js


Page({
  onShow:function(){


    // 取當(dāng)前頁(yè)面的TabBar實(shí)例,設(shè)置選中態(tài)
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().setData({
        selected: 0
      })
    }
  }
})
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)