# mx-tabbar 底部导航栏

底部导航栏,用于在对设备状态的切换。

# 引入

在app.json或index.json中引入组件,详细介绍见快速上手

"usingComponents": {
  "mx-tabbar": "/miniprogram_npm/m-ui/mx-tabbar/index",
  "mx-tabbar-item": "/miniprogram_npm/m-ui/mx-tabbar-item/index",
  "mx-tabber-button-item": "/miniprogram_npm/m-ui/mx-tabbar-button-item/index",
}

# 小程序码

可使用微信扫码查看小程序码

#

# 代码演示

# 基本用法

<mx-tabbar>
  <mx-tabbar-item  checked="{{ checked }}" icon={{icon1}} active-icon={{icon2}} bind:change="onChange1">标签</mx-tabbar-item>
  <mx-tabbar-item  checked="{{ checked1 }}" icon={{icon3}} active-icon={{icon4}} bind:change="onChange2">标签</mx-tabbar-item>
  <mx-tabbar-item  checked="{{ checked2 }}" icon={{icon5}} active-icon={{icon6}} bind:change="onChange3">标签</mx-tabbar-item>
  <mx-tabbar-item  checked="{{ checked3 }}" icon={{icon7}} active-icon={{icon8}} bind:change="onChange4">标签</mx-tabbar-item>
</mx-tabbar>
Page({
  data: {
    icon1: '/assets/image/example/tabbar/icon-a.png',
    icon2: '/assets/image/example/tabbar/icon-b.png',
    icon3: '/assets/image/example/tabbar/icon-c.png',
    icon4: '/assets/image/example/tabbar/icon-d.png',
    icon5: '/assets/image/example/tabbar/icon-e.png',
    icon6: '/assets/image/example/tabbar/icon-f.png',
    icon7: '/assets/image/example/tabbar/icon-g.png',
    icon8: '/assets/image/example/tabbar/icon-h.png',
    checked1: true,
    checked2: true,
    checked3: false,
    checked4: false,
  },
  onChange1({ detail }) {
    console.log(detail)
    // 需要手动对 checked 状态进行更新
    this.setData({
      checked1: detail,
    })
  },
  onChange2({ detail }) {
    // 需要手动对 checked 状态进行更新
    this.setData({
      checked2: detail,
    })
  },
  onChange3({ detail }) {
    // 需要手动对 checked 状态进行更新
    this.setData({
      checked3: detail,
    })
  },
  onChange4({ detail }) {
    // 需要手动对 checked 状态进行更新
    this.setData({
      checked4: detail,
    })
  },
});

# 展示按钮形式

通过设置tabber-button-item,可以设置按钮点击形式。

<mx-tabbar custom-class="tabbar-position-button">
      <mx-tabber-button-item
        inactive-color="#E9F1FF"
        activeIcon="{{icon2}}"
        icon="{{icon1}}"
        style="margin-right: 24px"
        checked="{{ checked1 }}"
        bind:change="onChange1"
      ></mx-tabber-button-item>
      <mx-tabber-button-item
        style="flex: 1"
        active-title-color="#fff"
        inactive-title-color="#666666"
        flexbutton
        title="启动"
        checked="{{ checked2 }}"
        bind:change="onChange2"
      ></mx-tabber-button-item>
    </mx-tabbar>
.tabbar-position-button {
  position: relative !important;
  padding: 8px 40px !important;
}

# 设置圆边和阴影

设置 border-radius box-shadow属性后,组件会展示阴影和圆边

<mx-tabbar   border-radius box-shadow>
  <mx-tabbar-item  checked="{{ checked }}" icon={{icon1}} active-icon={{icon2}} bind:change="onChange1">标签</mx-tabbar-item>
  <mx-tabbar-item  checked="{{ checked1 }}" icon={{icon3}} active-icon={{icon4}} bind:change="onChange2">标签</mx-tabbar-item>
  <mx-tabbar-item  checked="{{ checked2 }}" icon={{icon5}} active-icon={{icon6}} bind:change="onChange3">标签</mx-tabbar-item>
  <mx-tabbar-item  checked="{{ checked3 }}" icon={{icon7}} active-icon={{icon8}} bind:change="onChange4">标签</mx-tabbar-item>
</mx-tabbar>

# 自定义颜色风格

设置inactive-color,active-color属性来设置按钮的颜色显示,通过active-icon和icon来设置图片。

<mx-tabbar border-radius box-shadow>
  <mx-tabbar-item checked="{{ checked }}" inactive-color="#E9F1FF"  active-color="#FF2D84"  icon={{icon1}} active-icon={{icon2}} bind:change="onChange1">标签</mx-tabbar-item>
</mx-tabbar>

# 设置预约时状态

通过设置activeSpc,activeSpcColor,activeSpcIcon来设置预约时的特殊状态。

<mx-tabbar border-radius box-shadow>
  <mx-tabbar-item checked="{{ checked }}" active-spc active-spc-color="#E9F1FF"   inactive-color="#E9F1FF"  active-color="#FF2D84"  icon={{icon1}} active-icon={{icon2}} active-spc-icon="{{icon3}}" bind:change="onChange1">标签</mx-tabbar-item>
</mx-tabbar>

# API

# Tabbar Props

参数 说明 类型 默认值
fixed 是否固定在底部 boolean true
placeholder 固定在底部时,是否在标签位置生成一个等高的占位元素 boolean false
border 是否展示外边框 boolean true
z-index 元素 z-index number 1
safe-area-inset-bottom 是否为 iPhoneX 留出底部安全距离 boolean true

# TabbarItem Props

参数 说明 类型 默认值
active-color 选中标签的颜色 string #267AFF
inactive-color 未选中标签的颜色 string #F2F2F2
active-icon 选中标签的图片 string -
icon 未选中标签的图片 string -
loading 是否加载状态 boolean false
disabled 是否禁用 boolean false
icon-prefix 图标类名前缀 string mx-icon
dot 是否显示小红点 boolean false
info 图标右上角提示信息 string、number -
active-spc 是否预约 boolean false
active-spc 是否预约 boolean false
active-spc-color 预约关机时的颜色 string -
active-spc-icon 预约关机时的图标 string -

# TabbarItem Event

事件名 说明 参数
bind:change 切换标签时触发 event.detail: 当前选中标签的名称或索引值

# TabbarItem 外部样式类

名称 说明
custom-class 根节点样式类

# TabbarButtonItem Props

参数 说明 类型 默认值
title 按钮文案 string -
active-color 选中标签的颜色 string #267AFF
inactive-color 未选中标签的颜色 string #F2F2F2
active-icon 选中标签的图片 string -
icon 未选中标签的图片 string -
loading 是否加载状态 boolean false
disabled 是否禁用 boolean false
icon-prefix 图标类名前缀 string mx-icon
dot 是否显示小红点 boolean false
info 图标右上角提示信息 string、number -
active-spc 是否预约 boolean false
active-spc 是否预约 boolean false
active-spc-color 预约关机时的颜色 string -
active-spc-icon 预约关机时的图标 string -
flexbutton 是否横向铺平 boolean false
active-title-color 选中状态文案颜色 string #fff
inactive-title-color 非选中状态文案颜色 string #666