QQ小程序 自定義 tabBar

2020-07-02 15:45 更新

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

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

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

使用流程

1. 配置信息

app.json 中的 tabBar 項指定 custom 字段,同時其余 tabBar 相關(guān)配置也補(bǔ)充完整。 所有 tab 頁的 json 里需聲明 usingComponents 項,也可以在 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)前頁面下的自定義 tabBar 組件實例。

示例代碼

// page/index/index.js


Page({
  onShow:function(){


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號