<ons-tabbar />

タブバーをページ下部に表示するためのコンポーネントです。ons-tabと組み合わせて使うことで、ページを管理できます。

実例

Tabbar

The Tabbar component is used to add tab navigation to an app. It is a very common navigation pattern in mobile apps.

Every tab is defined by one Page component and one Tab component. The Tab component displays the actual tab and the Page component will be displayed when the tab is tapped.

The Tabbar component has a index property which is used to specify the page that is currently visible. To handle changing tabs by user input, the property onPreChange should be implemented.

<Ons.Tabbar
  index={this.state.index}
  onPreChange={(event) =>
    {
      if (event.index != index) {
        this.setState({index: event.index});
      }
    }
  }
  renderTabs={this.renderTabs}
/>

There is also a renderTabs property that should be set to a function that returns an array of objects with the keys content and tab:

{
  content: <Page />,
  tab: <Tab />
}

Every tab has, by default, the same width. 50% with two tabs, 25% with four tabs and so on. To allow tabs grow depending on their content (i.e. shorter/ longer labels), use the autogrow modifier in Tabbar component. Optionally, max-width CSS property can be specified to set the width of the tab (for each Tab component).

The Tab component

There are two ways to define a tab. Either the tab label can be put as a child of the Tab component or the label and icon props can be used to specify its appearance.

Swipes and Animations

By default, the tab bar will slide from one page to another on tab click. Use animation='none' prop to have an instant change.

swipeable={true} prop can be used to enable this functionality. It can be toggled to allow or prevent swipes at different moments of the app.

These props can be combined to have a tab bar with instant changes that can also be swiped:

<Tabbar swipeable={true} animation='none' ... />

For iOS, tabBorder prop can be included to show a tab border that updates position during swipe (this is always default on Android).

関連情報

名前 型 / デフォルト値 概要
animation String
none
If this attribute is set to "none" the transitions will not be animated. (翻訳中) Optional.
animation-options Expression アニメーション時のduration, timing, delayをオブジェクトリテラルで指定します。e.g. {duration: 0.2, delay: 1, timing: ‘ease-in’} Optional.
position String
bottom
タブバーの位置を指定します。”bottom”もしくは”top”を選択できます。デフォルトは”bottom”です。 Optional. 初期化時のみ有効
swipeable この属性がある時、タブバーをスワイプやドラッグで移動できるようになります。 Optional.
ignore-edge-width Number
20
Distance in pixels from both edges. Swiping on these areas will prioritize parent components such as ons-splitter or ons-navigator. (翻訳中) Optional.
active-index Number
0
The index of the tab that is currently active. (翻訳中) Optional.
hide-tabs タブを非表示にする場合に指定します。 Optional.
tab-border If this attribute is set the tabs show a dynamic bottom border. Only works for iOS flat design since the border is always visible in Material Design. (翻訳中) Optional.
modifier String タブバーの表現を指定します。 Optional.
名前 概要
animationOptions アニメーション時のduration, timing, delayをオブジェクトリテラルで指定します。e.g. {duration: 0.2, delay: 1, timing: ‘ease-in’}
activeIndex The index of the tab that is currently active. (翻訳中)
hideTabs タブを非表示にする場合に指定します。
tabBorder If this property is set the tabs show a dynamic bottom border. Only works for iOS flat design since the border is always visible in Material Design. (翻訳中)
visible タブバーが見える場合にtrue
swipeable swipeableであればtrueを返します。
onSwipe Hook called whenever the user slides the tabbar. It gets a decimal index and an animationOptions object as arguments. (翻訳中)
Name 概要
material A tabbar in Material Design. (翻訳中)
autogrow Tabs automatically grow depending on their content instead of having a fixed width. (翻訳中)
top-border Shows a static border-bottom in tabs for iOS top tabbars. (翻訳中)
シグネチャ 概要
setActiveTab(index, [options]) 指定したインデックスのタブを表示します。アニメーションなどのオプションを指定できます。
setTabbarVisibility(visible) Used to hide or show the tab bar. (翻訳中)
getActiveTabIndex() 現在アクティブになっているタブのインデックスを返します。現在アクティブなタブがない場合には-1を返します。
setActiveTab(index, [options]): Promise

指定したインデックスのタブを表示します。アニメーションなどのオプションを指定できます。

返り値:

パラメーター
名前 概要
index Number タブのインデックスを指定します。
options Object オプションを指定するオブジェクト。
options.callback Function Function that runs when the new page has loaded. (翻訳中)
options.animation String If this option is “none”, the transition won’t slide. (翻訳中)
options.animationOptions String アニメーション時のduration, delay, timingを指定します。e.g. {duration: 0.2, delay: 0.4, timing: ‘ease-in’}
setTabbarVisibility(visible)

Used to hide or show the tab bar. (翻訳中)

パラメーター
名前 概要
visible Boolean
getActiveTabIndex(): Number

現在アクティブになっているタブのインデックスを返します。現在アクティブなタブがない場合には-1を返します。

返り値: 現在アクティブになっているタブのインデックスを返します。

名前 概要
prechange アクティブなタブが変わる前に発火します。
postchange アクティブなタブが変わった後に発火します。
reactive すでにアクティブになっているタブがもう一度タップやクリックされた場合に発火します。
swipe Fires when the tabbar swipes. (翻訳中)
prechange

アクティブなタブが変わる前に発火します。

パラメーター
名前 概要
event Object イベントオブジェクト。
event.index Number 現在アクティブになっているons-tabのインデックスを返します。
event.tabItem Object tabItemオブジェクト。
event.cancel Function この関数を呼び出すと、アクティブなタブの変更がキャンセルされます。
postchange

アクティブなタブが変わった後に発火します。

パラメーター
名前 概要
event Object イベントオブジェクト。
event.index Number 現在アクティブになっているons-tabのインデックスを返します。
event.tabItem Object tabItemオブジェクト。
reactive

すでにアクティブになっているタブがもう一度タップやクリックされた場合に発火します。

パラメーター
名前 概要
event Object イベントオブジェクト。
event.index Number 現在アクティブになっているons-tabのインデックスを返します。
event.tabItem Object tabItemオブジェクト。
swipe

Fires when the tabbar swipes. (翻訳中)

パラメーター
名前 概要
event Object イベントオブジェクト。
event.index Number 現在アクティブになっているons-tabのインデックスを返します。
event.options Object Animation options object. (翻訳中)

お困りですか?

Onsen UIに関する質問は、Stack Overflowにてonsen-uiタグを付与してください。Onsen UIチームはあなたの問題解決をお手伝いします。

バグ報告や機能要望については、GitHub Issuesに記載をお願いいたします。

あわせて、下記の情報も参考にしてください。