1# NavDestination
2
3作为子页面的根容器,用于显示[Navigation](ts-basic-components-navigation.md)的内容区。
4
5> **说明:**
6>
7> - 该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8>
9> - 该组件从API Version 11开始默认支持安全区避让特性(默认值为:expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])),开发者可以重写该属性覆盖默认行为,API Version 11之前的版本需配合[expandSafeArea](ts-universal-attributes-expand-safe-area.md)属性实现安全区避让。
10>
11> - NavDestination组件必须配合Navigation使用,作为Navigation目的页面的根节点,单独使用只能作为普通容器组件,不具备路由相关属性能力。
12>
13> - 如果页面栈中间页面的生命周期发生变化,跳转之前的栈顶Destination的生命周期(onWillShow, onShown, onHidden, onWillDisappear)与跳转之后的栈顶Destination的生命周期(onWillShow, onShown, onHidden, onWillDisappear)均在最后触发。
14>
15> - NavDestination未设置主副标题并且没有返回键时,不显示标题栏。
16
17## 子组件
18
19> **说明:**
20>
21> - 子组件类型:系统组件和自定义组件,支持渲染控制类型([if/else](../../../quick-start/arkts-rendering-control-ifelse.md)、[ForEach](../../../quick-start/arkts-rendering-control-foreach.md)和[LazyForEach](../../../quick-start/arkts-rendering-control-lazyforeach.md))。
22> - 子组件个数:多个。
23
24
25## 接口
26
27NavDestination()
28
29**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
30
31**系统能力:** SystemCapability.ArkUI.ArkUI.Full
32
33## 属性
34
35支持[通用属性](ts-universal-attributes-size.md)。
36
37不推荐设置位置、大小等布局相关属性,可能会造成页面显示异常。
38
39### title
40
41title(value: string | CustomBuilder | NavDestinationCommonTitle | NavDestinationCustomTitle | Resource, options?: NavigationTitleOptions)
42
43设置页面标题。使用NavigationCustomTitle类型设置height高度时,[titleMode](ts-basic-components-navigation.md#titlemode)属性不会生效。字符串超长时,如果不设置副标题,先缩小再换行2行后以...截断。如果设置副标题,先缩小后以...截断。
44
45**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
46
47**系统能力:** SystemCapability.ArkUI.ArkUI.Full
48
49**参数:**
50
51| 参数名 | 类型                                                         | 必填 | 说明       |
52| ------ | ------------------------------------------------------------ | ---- | ---------- |
53| value  | string \| [CustomBuilder](ts-types.md#custombuilder8) \| [NavDestinationCommonTitle](#navdestinationcommontitle) \| [NavDestinationCustomTitle](#navdestinationcustomtitle) \| [Resource](ts-types.md#resource)  | 是   | 页面标题。 |
54| options<sup>12+</sup> | [NavigationTitleOptions](ts-basic-components-navigation.md#navigationtitleoptions11) | 否   | 标题栏选项。 |
55
56### hideTitleBar
57
58hideTitleBar(value: boolean)
59
60设置是否隐藏标题栏。
61
62**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
63
64**系统能力:** SystemCapability.ArkUI.ArkUI.Full
65
66**参数:**
67
68| 参数名 | 类型    | 必填 | 说明                                                         |
69| ------ | ------- | ---- | ------------------------------------------------------------ |
70| value  | boolean | 是   | 是否隐藏标题栏。<br/>默认值:false<br/>true:&nbsp;隐藏标题栏。<br/>false:&nbsp;显示标题栏。 |
71
72### hideTitleBar<sup>13+</sup>
73
74hideTitleBar(hide: boolean, animated: boolean)
75
76设置是否隐藏标题栏,设置是否使用动画显隐标题栏。
77
78**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。
79
80**系统能力:** SystemCapability.ArkUI.ArkUI.Full
81
82**参数:**
83
84| 参数名 | 类型    | 必填 | 说明                                                         |
85| ------ | ------- | ---- | ------------------------------------------------------------ |
86| hide  | boolean | 是   | 是否隐藏标题栏。<br/>默认值:false<br/>true: 隐藏标题栏。<br/>false: 显示标题栏。 |
87| animated  | boolean | 是   | 设置是否使用动画显隐标题栏。<br/>默认值:false<br/>true: 使用动画显示隐藏标题栏。<br/>false: 不使用动画显示隐藏标题栏。 |
88
89### toolbarConfiguration<sup>13+</sup>
90
91toolbarConfiguration(toolbarParam: Array&lt;ToolbarItem&gt; | CustomBuilder, options?: NavigationToolbarOptions)
92
93设置工具栏内容。未调用本接口时不显示工具栏。
94
95**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。
96
97**系统能力:** SystemCapability.ArkUI.ArkUI.Full
98
99**参数:**
100
101| 参数名       | 类型                                                         | 必填 | 说明                                                         |
102| ------------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
103| toolbarParam | &nbsp;Array&lt;[ToolbarItem](ts-basic-components-navigation.md#toolbaritem10)&gt; &nbsp;\|&nbsp;[CustomBuilder](ts-types.md#custombuilder8) | 是   | 工具栏内容。<br/>使用Array&lt;[ToolbarItem](ts-basic-components-navigation.md#toolbaritem10)&gt;写法设置的工具栏有如下特性:<br/>-工具栏所有选项均分底部工具栏,在每个均分内容区布局文本和图标。<br/>-文本超长时,若工具栏选项个数小于5个,优先拓展选项的宽度,工具栏最大宽度与屏幕等宽,其次逐级缩小,缩小之后换行,最后...截断。<br/>-竖屏最多支持显示5个图标,多余的图标会被放入自动生成的更多图标中,点击更多图标,可以展示剩余内容。横屏时,如果为[Split](ts-basic-components-navigation.md#navigationmode9枚举说明)模式,仍按照竖屏规则显示,如果为[Stack](ts-basic-components-navigation.md#navigationmode9枚举说明)模式需配合menus属性的Array&lt;[NavigationMenuItem](ts-basic-components-navigation.md#navigationmenuitem)&gt;使用,底部工具栏会自动隐藏,同时底部工具栏所有选项移动至页面右上角菜单。<br/>使用[CustomBuilder](ts-types.md#custombuilder8)写法为用户自定义工具栏选项,除均分底部工具栏外不具备以上功能。 |
104| options      | [NavigationToolbarOptions](ts-basic-components-navigation.md#navigationtoolbaroptions11) | 否   | 工具栏选项。                                                 |
105
106> **说明:**
107>
108> 不支持通过SymbolGlyphModifier对象的fontSize属性修改图标大小、effectStrategy属性修改动效、symbolEffect属性修改动效类型。
109
110### hideToolBar<sup>13+</sup>
111
112hideToolBar(hide: boolean, animated?: boolean)
113
114设置是否隐藏工具栏,设置是否使用动画显隐工具栏。
115
116**原子化服务API:** 从API version 13开始,该接口支持在原子化服务中使用。
117
118**系统能力:** SystemCapability.ArkUI.ArkUI.Full
119
120**参数:**
121
122| 参数名 | 类型    | 必填 | 说明                                                         |
123| ------ | ------- | ---- | ------------------------------------------------------------ |
124| hide  | boolean | 是   | 是否隐藏工具栏。<br/>默认值:false<br/>true: 隐藏工具栏。<br/>false: 显示工具栏。 |
125| animated  | boolean | 否   | 设置是否使用动画显隐工具栏。<br/>默认值:false<br/>true: 使用动画显示隐藏工具栏。<br/>false: 不使用动画显示隐藏工具栏。 |
126
127### mode <sup>11+</sup>
128
129mode(value: NavDestinationMode)
130
131设置NavDestination类型,不支持动态修改。
132
133**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
134
135**系统能力:** SystemCapability.ArkUI.ArkUI.Full
136
137**参数:**
138
139| 参数名 | 类型                                                 | 必填 | 说明                                                         |
140| ------ | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
141| value  | [NavDestinationMode](#navdestinationmode枚举说明-11) | 是   | NavDestination类型。<br/>默认值: NavDestinationMode.STANDARD |
142
143### backButtonIcon<sup>11+</sup>
144
145backButtonIcon(value: ResourceStr | PixelMap | SymbolGlyphModifier)
146
147> **说明:**
148>
149> 不支持通过SymbolGlyphModifier对象的fontSize属性修改图标大小、effectStrategy属性修改动效、symbolEffect属性修改动效类型。
150
151
152设置标题栏返回键图标。
153
154**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
155
156**系统能力:** SystemCapability.ArkUI.ArkUI.Full
157
158**参数:**
159
160| 参数名 | 类型                                                         | 必填 | 说明               |
161| ------ | ------------------------------------------------------------ | ---- | ------------------ |
162| value  | [ResourceStr](ts-types.md#resourcestr)&nbsp;\|&nbsp;[PixelMap](../../apis-image-kit/js-apis-image.md#pixelmap7)&nbsp;\|&nbsp;[SymbolGlyphModifier<sup>12+</sup>](ts-universal-attributes-attribute-modifier.md)  | 是   | 标题栏返回键图标。 |
163
164### menus<sup>12+</sup>
165
166menus(value: Array&lt;NavigationMenuItem&gt; | CustomBuilder)
167
168> **说明:**
169>
170> 不支持通过SymbolGlyphModifier对象的fontSize属性修改图标大小、effectStrategy属性修改动效、symbolEffect属性修改动效类型。
171
172
173设置页面右上角菜单。不设置时不显示菜单项。使用Array<[NavigationMenuItem](ts-basic-components-navigation.md#navigationmenuitem)&gt; 写法时,竖屏最多支持显示3个图标,横屏最多支持显示5个图标,多余的图标会被放入自动生成的更多图标。
174
175**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
176
177**系统能力:** SystemCapability.ArkUI.ArkUI.Full
178
179**参数:**
180
181| 参数名 | 类型                                                         | 必填 | 说明               |
182| ------ | ------------------------------------------------------------ | ---- | ------------------ |
183| value  | Array<[NavigationMenuItem](ts-basic-components-navigation.md#navigationmenuitem)&gt;&nbsp;\|&nbsp;[CustomBuilder](ts-types.md#custombuilder8) | 是   | 页面右上角菜单。 |
184
185### ignoreLayoutSafeArea<sup>12+</sup>
186
187ignoreLayoutSafeArea(types?: Array&lt;LayoutSafeAreaType&gt;, edges?: Array&lt;LayoutSafeAreaEdge&gt;)
188
189控制组件的布局,使其扩展到非安全区域
190
191**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
192
193**系统能力:** SystemCapability.ArkUI.ArkUI.Full
194
195**参数:**
196
197| 参数名 | 类型                                               | 必填 | 说明                                                         |
198| ------ | -------------------------------------------------- | ---- | ------------------------------------------------------------ |
199| types  | Array <[LayoutSafeAreaType](ts-types.md#layoutsafeareatype12)> | 否   | 配置扩展安全区域的类型。<br />默认值: <br />[LayoutSafeAreaType.SYSTEM] |
200| edges  | Array <[LayoutSafeAreaEdge](ts-types.md#layoutsafeareaedge12)> | 否   | 配置扩展安全区域的方向。<br /> 默认值: <br />[LayoutSafeAreaEdge.TOP, LayoutSafeAreaEdge.BOTTOM]。|
201
202>  **说明:**
203>
204>  组件设置LayoutSafeArea之后生效的条件为:
205>  设置LayoutSafeAreaType.SYSTEM时,组件的边界与非安全区域重合时组件能够延伸到非安全区域下。例如:设备顶部状态栏高度100,组件在屏幕中纵向方位的绝对偏移需要在0到100之间。
206>
207>  若组件延伸到非安全区域内,此时在非安全区域里触发的事件(例如:点击事件)等可能会被系统拦截,优先响应状态栏等系统组件。
208
209### systemBarStyle<sup>12+</sup>
210
211systemBarStyle(style: Optional&lt;SystemBarStyle&gt;)
212
213当Navigation中显示当前NavDestination时,设置对应系统状态栏的样式。
214
215**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
216
217**系统能力:** SystemCapability.ArkUI.ArkUI.Full
218
219**参数:**
220
221| 参数名 | 类型         | 必填 | 说明               |
222| ------ | -------------- | ---- | ------------------ |
223| style  | Optional&lt;[SystemBarStyle](../js-apis-window.md#systembarstyle12)&gt; | 是   | 系统状态栏样式。 |
224
225> **说明:**
226>
227> 1. 必须配合Navigation使用,作为其Navigation目的页面的根节点时才能生效。
228> 2. 其他使用限制请参考Navigation对应的[systemBarStyle](ts-basic-components-navigation.md#systembarstyle12)属性说明。
229
230### systemTransition<sup>14+</sup>
231systemTransition(type: NavigationSystemTransitionType)
232
233设置NavDestination系统转场动画,支持分别设置系统标题栏动画和内容动画。
234
235**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
236
237**系统能力:** SystemCapability.ArkUI.ArkUI.Full
238
239**参数:**
240
241| 参数名 | 类型                                                 | 必填 | 说明                                                         |
242| ------ | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
243| type  | [NavigationSystemTransitionType](#navigationsystemtransitiontype14枚举说明) | 是   | 系统转场动画类型。<br/>默认值: NavigationSystemTransitionType.DEFAULT |
244
245### recoverable<sup>14+</sup>
246
247recoverable(recoverable: Optional&lt;boolean&gt;)
248
249配置NavDestination是否可恢复。如配置为可恢复,当应用进程异常退出并重新冷启动时,可自动创建该NavDestination。该功能需NavDestination对应的Navigation也配置了可恢复属性。
250
251**系统能力:** SystemCapability.ArkUI.ArkUI.Full
252
253**参数:**
254
255| 参数名 | 类型         | 必填 | 说明               |
256| ------ | -------------- | ---- | ------------------ |
257| recoverable  | Optional&lt;boolean&gt; | 是   | NavDestination是否可恢复,默认为不可恢复。<br/>默认值:false<br/>true:页面栈可恢复。<br/>false:页面栈不可恢复。 |
258
259>  **使用说明:**
260>
261> 该接口需要配合Navigation的[recoverable](./ts-basic-components-navigation.md#recoverable14)接口使用。
262
263### bindToScrollable<sup>14+</sup>
264bindToScrollable(scrollers: Array&lt;Scroller&gt;)
265
266绑定NavDestination组件和可滚动容器组件(支持[List](./ts-container-list.md)、[Scroll](./ts-container-scroll.md)、[Grid](./ts-container-grid.md)、[WaterFlow](./ts-container-waterflow.md)),当滑动可滚动容器组件时,会触发所有与其绑定的NavDestination组件的标题栏和工具栏的显示和隐藏动效。一个NavDestination可与多个可滚动容器组件绑定,一个可滚动容器组件也可与多个NavDestination绑定。使用示例参见[示例1](#示例1)。
267
268> **说明:**
269>
270> - 只有NavDestination的标题栏或工具栏设置为可见时,联动效果才会生效。
271> - 当多个可滚动容器组件绑定了同一个NavDestination组件时,滚动任何一个容器都会触发标题栏和工具栏的显示或隐藏效果。且当任何一个可滚动容器组件滑动到底部或顶部位置时,会立即触发标题栏和工具栏的显示动效。因此,为了获得最佳用户体验,不建议同时触发多个可滚动容器组件的滚动事件。
272
273**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
274
275**系统能力:** SystemCapability.ArkUI.ArkUI.Full
276
277**参数:**
278
279| 参数名 | 类型                                                 | 必填 | 说明                                                         |
280| ------ | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
281| scrollers | Array<[Scroller](./ts-container-scroll.md#scroller)> | 是   | 可滚动容器组件的控制器。 |
282
283### bindToNestedScrollable<sup>14+</sup>
284bindToNestedScrollable(scrollInfos: Array&lt;NestedScrollInfo&gt;)
285
286绑定NavDestination组件和嵌套的可滚动容器组件(支持[List](./ts-container-list.md)、[Scroll](./ts-container-scroll.md)、[Grid](./ts-container-grid.md)、[WaterFlow](./ts-container-waterflow.md)),当滑动父组件或子组件时,会触发所有与其绑定的NavDestination组件的标题栏和工具栏的显示和隐藏动效。一个NavDestination可与多个嵌套的可滚动容器组件绑定,嵌套的可滚动容器组件也可与多个NavDestination绑定。使用示例参见[示例1](#示例1)。
287
288> **说明:**
289>
290> - 只有NavDestination的标题栏或工具栏设置为可见时,联动效果才会生效。
291> - 当多个可滚动容器组件绑定了同一个NavDestination组件时,滚动任何一个容器都会触发标题栏和工具栏的显示或隐藏效果。且当任何一个可滚动容器组件滑动到底部或顶部位置时,会立即触发标题栏和工具栏的显示动效。因此,为了获得最佳用户体验,不建议同时触发多个可滚动容器组件的滚动事件。
292
293**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
294
295**系统能力:** SystemCapability.ArkUI.ArkUI.Full
296
297**参数:**
298
299| 参数名 | 类型                                                 | 必填 | 说明                                                         |
300| ------ | ---------------------------------------------------- | ---- | ------------------------------------------------------------ |
301| scrollInfos | Array<[NestedScrollInfo](#nestedscrollinfo14)> | 是   | 嵌套的可滚动容器组件的控制器。 |
302
303## NavDestinationMode枚举说明 <sup>11+</sup>
304
305**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
306
307**系统能力:** SystemCapability.ArkUI.ArkUI.Full
308
309| 名称   | 说明                                     |
310| ---- | ---------------------------------------- |
311| STANDARD | 标准模式的NavDestination。                       |
312| DIALOG | 默认透明,进出页面栈不影响下层NavDestination的生命周期。<br />API version 13之前,默认无系统转场动画。从API version 13开始,支持系统转场动画。  |
313
314## NavigationSystemTransitionType<sup>14+</sup>枚举说明
315
316**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
317
318**系统能力:** SystemCapability.ArkUI.ArkUI.Full
319
320| 名称   | 值   | 说明 |
321| ----  | ---   | ----- |
322| DEFAULT  | 0 | 默认系统转场动画。|
323| NONE| 1 | 无系统转场动画。|
324| TITLE | 2 | 标题栏系统转场动画。|
325| CONTENT | 3 | 内容区系统转场动画。|
326
327**说明:**
328>
329> 设置系统转场动画,支持分别设置系统标题栏动画和内容动画。
330>
331> 系统默认转场动画中只有STANDARD页面的push和pop动画有单独的标题栏动画,存在如下限制:
332> 1. 设置NavigationSystemTransitionType为TITLE时,系统转场只有标题栏动画。
333> 2. 设置NavigationSystemTransitionType为CONTENT时,系统转场只有内容区动画。
334>
335> 设置NONE或者TITLE时没有系统转场动画,设置CONTENT和DEFAULT时默认系统转场动画。
336
337## 事件
338
339除支持[通用事件](ts-universal-events-click.md)外,还支持如下事件:
340
341### onShown<sup>10+</sup>
342
343onShown(callback:&nbsp;()&nbsp;=&gt;&nbsp;void)
344
345当该NavDestination页面显示时触发此回调。
346
347**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
348
349**系统能力:** SystemCapability.ArkUI.ArkUI.Full
350
351### onHidden<sup>10+</sup>
352
353onHidden(callback:&nbsp;()&nbsp;=&gt;&nbsp;void)
354
355当该NavDestination页面隐藏时触发此回调。
356
357**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
358
359**系统能力:** SystemCapability.ArkUI.ArkUI.Full
360
361### onWillAppear<sup>12+</sup>
362
363onWillAppear(callback: Callback\<void>)
364
365当该Destination挂载之前触发此回调。在该回调中允许修改页面栈,当前帧生效。
366
367**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
368
369**系统能力:** SystemCapability.ArkUI.ArkUI.Full
370
371### onWillShow<sup>12+</sup>
372
373onWillShow(callback: Callback\<void>)
374
375当该Destination显示之前触发此回调。
376
377**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
378
379**系统能力:** SystemCapability.ArkUI.ArkUI.Full
380
381### onWillHide<sup>12+</sup>
382
383onWillHide(callback: Callback\<void>)
384
385当该Destination隐藏之前触发此回调。
386
387**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
388
389**系统能力:** SystemCapability.ArkUI.ArkUI.Full
390
391### onWillDisappear<sup>12+</sup>
392
393onWillDisappear(callback: Callback\<void>)
394
395当该Destination卸载之前触发的生命周期(有转场动画时,在转场动画开始之前触发)。
396
397**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
398
399**系统能力:** SystemCapability.ArkUI.ArkUI.Full
400
401### onBackPressed<sup>10+</sup>
402
403onBackPressed(callback:&nbsp;()&nbsp;=&gt;&nbsp;boolean)
404
405当与Navigation绑定的页面栈中存在内容时,此回调生效。当点击返回键时,触发该回调。
406
407返回值为true时,表示重写返回键逻辑,返回值为false时,表示回退到上一个页面。
408
409**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
410
411**系统能力:** SystemCapability.ArkUI.ArkUI.Full
412
413### onReady<sup>11+</sup>
414
415onReady(callback:&nbsp;[Callback](../../apis-basic-services-kit/js-apis-base.md#callback)<[NavDestinationContext](#navdestinationcontext11)>)
416
417当NavDestination即将构建子组件之前会触发此回调。
418
419**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
420
421**系统能力:** SystemCapability.ArkUI.ArkUI.Full
422
423## NavDestinationCommonTitle
424
425**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
426
427**系统能力:** SystemCapability.ArkUI.ArkUI.Full
428
429| 名称   | 类型     | 必填   | 说明     |
430| ---- | ------ | ---- | ------ |
431| main | string \| [Resource<sup>14+<sup>](ts-types.md#resource) | 是    | 设置主标题。 |
432| sub  | string \| [Resource<sup>14+<sup>](ts-types.md#resource) | 是    | 设置副标题。 |
433
434## NavDestinationCustomTitle
435
436**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
437
438**系统能力:** SystemCapability.ArkUI.ArkUI.Full
439
440| 名称      | 类型                                       | 必填   | 说明       |
441| ------- | ---------------------------------------- | ---- | -------- |
442| builder | [CustomBuilder](ts-types.md#custombuilder8) | 是    | 设置标题栏内容。 |
443| height  | [TitleHeight](ts-appendix-enums.md#titleheight9) \| [Length](ts-types.md#length) | 是    | 设置标题栏高度。 |
444
445## NavDestinationContext<sup>11+</sup>
446
447**系统能力:** SystemCapability.ArkUI.ArkUI.Full
448
449| 名称   | 类型     | 必填   |  说明     |
450| ---- | ------ | ----- | ------ |
451| pathInfo | [NavPathInfo](ts-basic-components-navigation.md#navpathinfo10) | 是 | 跳转NavDestination时指定的参数。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
452| pathStack  | [NavPathStack](ts-basic-components-navigation.md#navpathstack10) | 是 | 当前NavDestination所处的页面栈。 <br/>**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 |
453| navDestinationId<sup>12+</sup> | string | 否 | 当前NavDestination的唯一ID,由系统自动生成,和组件通用属性id无关。 <br/>**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。|
454
455### getConfigInRouteMap<sup>12+</sup>
456
457getConfigInRouteMap(): RouteMapConfig |undefined
458
459**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
460
461**系统能力:** SystemCapability.ArkUI.ArkUI.Full
462
463**返回值**
464
465| 类型 | 说明 |
466| --- | --- |
467| [RouteMapConfig](#routemapconfig12) | 当前页面路由配置信息。 |
468| undefined | 当该页面不是通过路由表配置时返回undefined。 |
469
470## RouteMapConfig<sup>12+</sup>
471
472**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
473
474**系统能力:** SystemCapability.ArkUI.ArkUI.Full
475
476| 名称   | 类型   |必填 | 说明 |
477| ----  | ---   | ---- |----- |
478| name  | string | 是 | 页面名称。|
479| pageSourceFile| string | 是 | 页面在当前包中的路径。|
480| data | Object | 是 | 页面自定义字段信息。|
481
482## NestedScrollInfo<sup>14+</sup>
483
484嵌套可滚动容器组件信息
485
486**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
487
488**系统能力:** SystemCapability.ArkUI.ArkUI.Full
489
490| 名称   | 类型   |必填 | 说明 |
491| ----  | ---   | ---- |----- |
492| parent | [Scroller](./ts-container-scroll.md#scroller) | 是 | 可滚动容器组件的控制器。 |
493| child | [Scroller](./ts-container-scroll.md#scroller) | 是 | 可滚动容器组件的控制器,child对应的组件需要是parent对应组件的子组件,且组件间存在嵌套滚动关系。|
494
495## 示例
496
497### 示例1
498
499以下示例主要演示NavDestination绑定可滚动容器组件来实现滚动内容时触发标题栏和工具栏显示隐藏的效果。
500
501```ts
502import { SymbolGlyphModifier } from '@kit.ArkUI';
503
504@Component
505struct MyPageOne {
506  private listScroller: Scroller = new Scroller();
507  private scrollScroller: Scroller = new Scroller();
508  private arr: number[] = [];
509
510  aboutToAppear(): void {
511    for (let i = 0; i < 30; i++) {
512      this.arr.push(i);
513    }
514  }
515
516  build() {
517    NavDestination() {
518      Scroll(this.scrollScroller) {
519        Column() {
520          List({space: 0, initialIndex: 0, scroller: this.listScroller}) {
521            ForEach(this.arr, (item: number, index: number) => {
522              ListItem() {
523                Text('' + item)
524                  .height(100)
525                  .fontSize(16)
526                  .textAlign(TextAlign.Center)
527                  .width('90%')
528                  .margin({left: '5%'})
529                  .borderRadius(10)
530                  .backgroundColor(Color.Gray)
531              }
532            }, (item: string) => item);
533          }.width('100%').height('80%').scrollBar(BarState.Off)
534          .nestedScroll({scrollForward: NestedScrollMode.SELF_FIRST, scrollBackward: NestedScrollMode.SELF_FIRST})
535          ForEach(this.arr, (item: number, index: number) => {
536            ListItem() {
537              Text('' + item)
538                .height(100)
539                .fontSize(16)
540                .textAlign(TextAlign.Center)
541                .width('90%')
542                .margin({top: '5%'})
543                .borderRadius(10)
544                .backgroundColor(Color.Pink)
545            }
546          }, (item: string) => item);
547        }
548      }
549      .width('100%')
550      .scrollBar(BarState.Off)
551      .scrollable(ScrollDirection.Vertical)
552      .edgeEffect(EdgeEffect.Spring)
553    }
554    .title('PageOne', {backgroundColor: Color.Yellow, barStyle: BarStyle.STACK})
555    .toolbarConfiguration([
556      {
557        value: 'item1',
558        symbolIcon: new SymbolGlyphModifier($r('sys.symbol.phone_badge_star'))
559      }
560    ], {backgroundColor: Color.Orange, barStyle: BarStyle.STACK})
561    // 绑定有父子关系的可滚动容器组件
562    .bindToNestedScrollable([{parent: this.scrollScroller, child: this.listScroller}])
563  }
564}
565
566@Component
567struct MyPageTwo {
568  private listScroller: Scroller = new Scroller();
569  private arr: number[] = [];
570
571  aboutToAppear(): void {
572    for (let i = 0; i < 30; i++) {
573      this.arr.push(i);
574    }
575  }
576
577  build() {
578    NavDestination() {
579      List({scroller: this.listScroller}) {
580        ForEach(this.arr, (item: number, index: number) => {
581          ListItem() {
582            Text('' + item)
583              .height(100)
584              .fontSize(16)
585              .textAlign(TextAlign.Center)
586              .width('90%')
587              .margin({left: '5%'})
588              .borderRadius(10)
589              .backgroundColor(Color.Gray)
590          }
591        }, (item: string) => item);
592      }.width('100%')
593    }
594    .title('PageTwo', {backgroundColor: Color.Yellow, barStyle: BarStyle.STACK})
595    .toolbarConfiguration([
596      {
597        value: 'item1',
598        symbolIcon: new SymbolGlyphModifier($r('sys.symbol.phone_badge_star'))
599      }
600    ], {backgroundColor: Color.Orange, barStyle: BarStyle.STACK})
601    // 绑定可滚动容器组件
602    .bindToScrollable([this.listScroller])
603  }
604}
605
606@Entry
607@Component
608struct Index {
609  private stack: NavPathStack = new NavPathStack();
610
611  @Builder
612  MyPageMap(name: string) {
613    if (name === 'myPageOne') {
614      MyPageOne()
615    } else {
616      MyPageTwo()
617    }
618  }
619
620  build() {
621    Navigation(this.stack) {
622      Column() {
623        Button('push PageOne').onClick(() => {
624          this.stack.pushPath({name: 'myPageOne'})
625        })
626        Button('push PageTwo').onClick(() => {
627          this.stack.pushPath({name: 'myPageTwo'})
628        })
629      }.height('40%').justifyContent(FlexAlign.SpaceAround)
630    }.width('100%')
631    .height('100%')
632    .title({main: 'MainTitle', sub: 'subTitle'})
633    .navDestination(this.MyPageMap)
634  }
635}
636```
637![navdestination_bind_scrollable](figures/navdestination_bind_scrollable.gif)
638
639NavDestination其他用法可参考[Navigation示例](ts-basic-components-navigation.md#示例1)。
640