tabs

NOTE

This component is supported since API version 4. Updates will be marked with a superscript to indicate their earliest API version.

The <tabs> component provides a tab container.

Required Permissions

None

Child Components

Only <tab-bar> and <tab-content> are supported.

Attributes

In addition to the universal attributes, the following attributes are supported.

Name Type Default Value Mandatory Description
index number 0 No Index of the active tab.
vertical boolean false No Whether the tab is vertical. Available values are as follows:
- false: The <tab-bar> and <tab-content> are arranged vertically.
- true: The <tab-bar> and <tab-content> are arranged horizontally.

Styles

The universal styles are supported.

Events

In addition to the universal events, the following events are supported.

Name Parameter Description
change { index: indexValue } Triggered upon tab switching. This event is not triggered when the index value is dynamically changed.

Example

<!-- xxx.hml -->
<div class="container">
  <tabs class = "tabs" index="0" vertical="false" onchange="change">
    <tab-bar class="tab-bar" mode="fixed">
      <text class="tab-text">Home</text>
      <text class="tab-text">Index</text>
      <text class="tab-text">Detail</text>
    </tab-bar>
    <tab-content class="tabcontent" scrollable="true">
      <div class="item-content" >
        <text class="item-title">First screen</text>
      </div>
      <div class="item-content" >
        <text class="item-title">Second screen</text>
      </div>
      <div class="item-content" >
        <text class="item-title">Third screen</text>
      </div>
    </tab-content>
  </tabs>
</div>
/* xxx.css */
.container {
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
}
.tabs {
  width: 100%;
}
.tabcontent {
  width: 100%;
  height: 80%;
  justify-content: center;
}
.item-content {
  height: 100%;
  justify-content: center;
}
.item-title {
  font-size: 60px;
}
.tab-bar {
  margin: 10px;
  height: 60px;
  border-color: #007dff;
  border-width: 1px;
}
.tab-text {
  width: 300px;
  text-align: center;
}
// xxx.js
export default {
  change: function(e) {
    console.log("Tab index: " + e.index);
  },
}

tab