小程序-微信小程序自定義tabbar

第一步:在app.json中根據(jù)使用系統(tǒng)tabbar的步驟添加屬性,然后在額外添加一個(gè)cutsom:true的屬性炊甲,雖然custom為true之后泥彤,我們添加的系統(tǒng)tabbar并不會(huì)渲染,但是系統(tǒng)會(huì)默認(rèn)我們添加的頁(yè)面是屬于tabbar頁(yè)面卿啡,之后在自定義tabbar中可以通過wx.switchTab來(lái)進(jìn)行切換吟吝。

"tabBar": {
    "custom": true,
    "color": "#666666",
    "selectedColor": "#1e9e92",
    "list": [
      {
        "pagePath": "pages/grow/grow",
        "text": "成長(zhǎng)",
        "iconPath": "/images/tabbar_grow.png",
        "selectedIconPath": "/images/tabbar_grow_select.png"
      },{
        "pagePath": "pages/home/home",
        "text": "主頁(yè)",
        "iconPath": "/images/tabbar-badge.png",
        "selectedIconPath": "/images/tabbar-badge-select.png"
      },{
        "pagePath": "pages/mine/mine",
        "text": "我的",
        "iconPath": "/images/tabbar-mine.png",
        "selectedIconPath": "/images/tabbar-mine-select.png"
      }]
  },

第二步:創(chuàng)建一個(gè)自定義tabbar組件

.xml文件如下:
<view class="tab-bar {{isIphoneXSeries ? 'iphoneX' : ''}}">
  <block wx:for="{{items}}" wx:key="title">
    <view class="tab-item" bindtap="onChangeTab" data-index="{{index}}">
      <image class="tab-icon" src="{{activeIndex == index ? item.selectedIcon : item.icon}}"></image>
      <view class="tab-title {{activeIndex == index ? 'active' : 'normal'}}">{{item.title}}</view>
    </view>
  </block>
</view>
.wxss文件如下:
.tab-bar {
  width: 100vw;
  height: 49px;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  bottom: 0;
  left: 0;
  border-top: #ccc solid 1px;
  z-index: 999;
}

.iphoneX {
  padding-bottom: 34px;
}


.tab-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.tab-icon {
  width: 25px;
  height: 25px;
}

.tab-title {
  font-size: 24rpx;
}

.tab-title.active {
  color: #1e9e92;
}

.tab-title.normal {
  color: #666;
}
.json文件如下:
{
  "component": true,
  "usingComponents": {}
}
.js文件如下:
// components/custom_tabbar/custom_tabbar.js
var app = getApp();
Component({
  /**
   * 組件的屬性列表
   */
  properties: {
    activeIndex: {
      type: Number,
      value: 1
    },
  },

  /**
   * 組件的初始數(shù)據(jù)
   */
  data: {
    isIphoneXSeries: false,
    items: [
      {
        'title': '成長(zhǎng)',
        'icon': '/images/tabbar_grow.png',
        'selectedIcon': '/images/tabbar_grow_select.png',
        'path': '../../pages/grow/grow'
      },{
        'title': '主頁(yè)',
        'icon': '/images/tabbar-badge.png',
        'selectedIcon': '/images/tabbar-badge-select.png',
        'path': '../../pages/home/home',
      },{
        'title': '我的',
        'icon': '/images/tabbar-mine.png',
        'selectedIcon': '/images/tabbar-mine-select.png',
        'path': '../../pages/mine/mine'
      },
    ]
  },

  attached: function() {
    this.setData({
      isIphoneXSeries: app.globalData.isIphoneXSeries
    })
  },

  /**
   * 組件的方法列表
   */
  methods: {
    onChangeTab(res) {
      var index = res.currentTarget.dataset.index;      
      wx.switchTab({
        url: this.data.items[index].path
      })
    }
  }
})

第三步:在tab頁(yè)面引入tabbar組件

//grow.json中引入組件
"usingComponents": {
    "tabbar": "../../components/custom_tabbar/custom_tabbar"
  }
//在grow.wxml中使用組件
<tabbar activeIndex="{{0}}"/>

//home.json中引入組件
"usingComponents": {
    "tabbar": "../../components/custom_tabbar/custom_tabbar"
  }
//在home.wxml中使用組件
<tabbar activeIndex="{{1}}"/>

//mine.json中引入組件
"usingComponents": {
    "tabbar": "../../components/custom_tabbar/custom_tabbar"
  }
//在mine.wxml中使用組件
<tabbar activeIndex="{{2}}"/>
總結(jié):使用自定義組件的流暢性并沒有系統(tǒng)的好,第一次加載的時(shí)候會(huì)有一次閃爍的問題颈娜。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末剑逃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子官辽,更是在濱河造成了極大的恐慌蛹磺,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件同仆,死亡現(xiàn)場(chǎng)離奇詭異萤捆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門鳖轰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人扶镀,你說(shuō)我怎么就攤上這事蕴侣。” “怎么了臭觉?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵昆雀,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我蝠筑,道長(zhǎng)狞膘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任什乙,我火速辦了婚禮挽封,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘臣镣。我一直安慰自己辅愿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布忆某。 她就那樣靜靜地躺著点待,像睡著了一般。 火紅的嫁衣襯著肌膚如雪弃舒。 梳的紋絲不亂的頭發(fā)上癞埠,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音聋呢,去河邊找鬼苗踪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛坝冕,可吹牛的內(nèi)容都是我干的徒探。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼喂窟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼测暗!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起磨澡,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤碗啄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后稳摄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稚字,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胆描。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘫想。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖昌讲,靈堂內(nèi)的尸體忽然破棺而出国夜,到底是詐尸還是另有隱情,我是刑警寧澤短绸,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布车吹,位于F島的核電站,受9級(jí)特大地震影響醋闭,放射性物質(zhì)發(fā)生泄漏窄驹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一证逻、第九天 我趴在偏房一處隱蔽的房頂上張望乐埠。 院中可真熱鬧,春花似錦瑟曲、人聲如沸饮戳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)扯罐。三九已至,卻和暖如春烦衣,著一層夾襖步出監(jiān)牢的瞬間歹河,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工花吟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秸歧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親火焰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354