The Navigator
is a component that provides stack based navigation. It is a very common navigation pattern in mobile apps.
After pushing a page to the top of the stack it will be displayed using transition animation. When the user goes back to the previous page the top page will be popped from the top of the stack and hidden with an corresponding transition animation.
The Navigator
maintains a stack of route objects. These objects can be arbitrary objects and are rendered into pages with the renderPage
property. The renderPage
property must be set to a function that returns a Page
component.
To push a new page on top of the stack, the pushPage(route)
method is used. Similarly, a page is popped from the stack with the popPage()
method.
The stack must be initialized with either the initialRoute
or initialRouteStack
, depending on whether the the stack needs to be initialized with one or more pages.
The BackButton
component can be used to put a back button in the navigation bar. The component will automatically find the Navigator
component and pop a page when pressed.
<Toolbar>
<div className='left'>
<BackButton>Back</BackButton>
</div>
<div className='center'>
Title
</div>
</Toolbar>
There are several animations available for the Navigator
component. To change the animation the animation
property is used. Available animations are slide
, lift
and fade
. Setting the property to none
will make the transition instantly.
It is also possible to customize the duration, delay and timing function of the animation using the animationOptions
property.
<Navigator
initialRoute={...}
renderPage={...}
animation='fade'
animationOptions={{duration: 0.2, timing: 'ease-in'}}
/>
For iOS’ “swipe to pop” feature, add the swipeable
prop. Note that this behavior is automatically removed on Android platforms unless swipeable={'force'}
is specified.
名前 | 型 / デフォルト値 | 概要 |
---|---|---|
page | String | ナビゲーターが初期化された時に表示するページを指定します。 Optional. 初期化時のみ有効 |
swipeable | Boolean | Enable iOS “swipe to pop” feature. (翻訳中) Optional. |
swipe-target-width |
String
20px |
スワイプの判定領域をピクセル単位で指定します。画面の端から指定した距離に達するとページが表示されます。 Optional. |
swipe-threshold |
Number
0.2 |
Specify how much the page needs to be swiped before popping. A value between 0 and 1 .
(翻訳中)
Optional.
|
animation |
String
default |
Animation name. Available animations are |
animation-options | Expression |
アニメーション時のduration, timing, delayをオブジェクトリテラルで指定します。e.g. {duration: 0.2, delay: 1, timing: 'ease-in'}
Optional.
|
名前 | 概要 |
---|---|
animationOptions |
アニメーション時のduration, timing, delayをオブジェクトリテラルで指定します。e.g. {duration: 0.2, delay: 1, timing: 'ease-in'}
|
pageLoader | PageLoaderインスタンスを格納しています。 |
page |
初期化時に読み込むページを指定します。page 属性で指定した値よりもpage プロパティに指定した値を優先します。
|
onDeviceBackButton | バックボタンハンドラ。 |
topPage | 現在のページを取得します。pushPage()やresetToPage()メソッドの引数を取得できます。 |
pages | Copy of the navigator’s page stack. (翻訳中) |
onSwipe | Hook called whenever the user slides the navigator (swipe-to-pop). It gets a decimal ratio (0-1) and an animationOptions object as arguments. (翻訳中) |
options | Default options object. Attributes have priority over this property. (翻訳中) |
options.animation |
Animation name. Available animations are |
options.animationOptions |
アニメーション時のduration, delay, timingを指定します。e.g. {duration: 0.2, delay: 0.4, timing: 'ease-in'}
|
options.callback | このメソッドによる画面遷移が終了した際に呼び出される関数オブジェクトを指定します。 |
シグネチャ | 概要 |
---|---|
popPage([options]) | 現在表示中のページをページスタックから取り除きます。一つ前のページに戻ります。 |
pushPage(page, [options]) | 指定したpageを新しいページスタックに追加します。新しいページが表示されます。 |
replacePage(page, [options]) | 現在表示中のページをを指定したページに置き換えます。 |
insertPage(index, page, [options]) | 指定したpageをページスタックのindexで指定した位置に追加します。 |
removePage(index, [options]) | 指定したインデックスにあるページを削除します。 |
resetToPage(page, [options]) | ページスタックをリセットし、指定したページを表示します。 |
bringPageTop(item, [options]) | 指定したページをページスタックの一番上に移動します。もし指定したページが無かった場合新しくpushされます。 |
現在表示中のページをページスタックから取り除きます。一つ前のページに戻ります。
返り値: 明らかにしたページを解決するPromiseを返します。
名前 | 型 | 概要 |
---|---|---|
options | Object | オプションを指定するオブジェクト。 |
options.animation | String |
Animation name. Available animations are |
options.animationOptions | String | アニメーション時のduration, delay, timingを指定します。e.g. {duration: 0.2, delay: 0.4, timing: ‘ease-in’} |
options.callback | Function | このメソッドによる画面遷移が終了した際に呼び出される関数オブジェクトを指定します。 |
options.data | Object | Custom data that will be stored in the new page element. (翻訳中) |
options.times | Number | Number of pages to be popped. Only one animation will be shown. (翻訳中) |
指定したpageを新しいページスタックに追加します。新しいページが表示されます。
返り値: 追加したページを解決するPromiseを返します。
名前 | 型 | 概要 |
---|---|---|
page | String |
pageのURLか、もしくは<template> で宣言したテンプレートのid属性の値を指定できます。
|
options | Object | オプションを指定するオブジェクト。 |
options.page | String |
Page URL. Only necessary if page parameter is null or undefined.
(翻訳中)
|
options.pageHTML | String |
HTML code that will be computed as a new page. Overwrites page parameter.
(翻訳中)
|
options.animation | String |
Animation name. Available animations are |
options.animationOptions | String |
アニメーション時のduration, delay, timingを指定します。e.g. {duration: 0.2, delay: 0.4, timing: 'ease-in'}
|
options.callback | Function | pushPage()による画面遷移が終了した時に呼び出される関数オブジェクトを指定します。 |
options.data | Object | Custom data that will be stored in the new page element. (翻訳中) |
現在表示中のページをを指定したページに置き換えます。
返り値: 新しいページを解決するPromiseを返します。
指定したpageをページスタックのindexで指定した位置に追加します。
返り値: 指定したページを解決するPromiseを返します。
名前 | 型 | 概要 |
---|---|---|
index | Number | スタックに挿入する位置のインデックスを指定します。 |
指定したインデックスにあるページを削除します。
返り値: 削除によって表示されたページを解決するPromiseを返します。
名前 | 型 | 概要 |
---|---|---|
index | Number | スタックから削除するページのインデックスを指定します。 |
ページスタックをリセットし、指定したページを表示します。
返り値: 新しいトップページを解決するPromiseを返します。
名前 | 型 | 概要 |
---|---|---|
options.pop | Boolean |
Performs ‘pop’ effect if true instead of ‘push’ or none. This also sets options.animation value to default instead of none .
(翻訳中)
|
指定したページをページスタックの一番上に移動します。もし指定したページが無かった場合新しくpushされます。
返り値: 新しいトップページを解決するPromiseを返します。
名前 | 型 | 概要 |
---|---|---|
item | String|Number | ページのURLかもしくはons-navigatorのページスタックのインデックス値を指定します。 |
名前 | 概要 |
---|---|
prepush | pageがpushされる直前に発火されます。 |
prepop | pageがpopされる直前に発火されます。 |
postpush | pageがpushされてアニメーションが終了してから発火されます。 |
postpop | pageがpopされてアニメーションが終わった後に発火されます。 |
swipe | Fired whenever the user slides the navigator (swipe-to-pop). (翻訳中) |
pageがpushされる直前に発火されます。
名前 | 型 | 概要 |
---|---|---|
event | Object | Event object. |
event.navigator | Object | コンポーネントのオブジェクト。 |
event.currentPage | Object | 現在のpageオブジェクト。 |
event.cancel | Function | この関数を呼び出すと、push処理がキャンセルされます。 |
pageがpopされる直前に発火されます。
名前 | 型 | 概要 |
---|---|---|
event | Object | Event object. |
event.navigator | Object | コンポーネントのオブジェクト。 |
event.currentPage | Object | 現在のpageオブジェクト。 |
event.cancel | Function | この関数を呼び出すと、pageのpopがキャンセルされます。 |
pageがpushされてアニメーションが終了してから発火されます。
名前 | 型 | 概要 |
---|---|---|
event | Object | Event object. |
event.navigator | Object | コンポーネントのオブジェクト。 |
event.enterPage | Object | pushされたpageオブジェクト。 |
event.leavePage | Object | 以前のpageオブジェクト。 |
pageがpopされてアニメーションが終わった後に発火されます。
名前 | 型 | 概要 |
---|---|---|
event | Object | Event object. |
event.navigator | Object | コンポーネントのオブジェクト。 |
event.enterPage | Object | popされて表示されるページのオブジェクト。 |
event.leavePage | Object | popされて消えるページのオブジェクト。 |
event.swipeToPop | Object | True if the pop was triggered by the user swiping to pop. (翻訳中) |
event.onsBackButton | Object | True if the pop was caused by pressing an ons-back-button. (翻訳中) |
Fired whenever the user slides the navigator (swipe-to-pop). (翻訳中)
名前 | 型 | 概要 |
---|---|---|
event | Object | Event object. |
event.ratio | Object | Decimal ratio (0-1). (翻訳中) |
event.animationOptions | Object | (翻訳中) |
Onsen UIに関する質問は、Stack Overflowにてonsen-uiタグを付与してください。Onsen UIチームはあなたの問題解決をお手伝いします。
バグ報告や機能要望については、GitHub Issuesに記載をお願いいたします。
あわせて、下記の情報も参考にしてください。