NavRouter
導(dǎo)航組件,默認提供點擊響應(yīng)處理,不需要開發(fā)者自定義點擊事件邏輯。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
該組件從API Version 9開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。
子組件
必須包含兩個子組件,其中第二個子組件必須為[NavDestination]。
說明:
子組件個數(shù)異常時:
- 有且僅有1個時,觸發(fā)路由到NavDestination的能力失效。
- 有且僅有1個時,且使用NavDestination場景下,不進行路由。
- 大于2個時,后續(xù)的子組件不顯示。
- 第二個子組件不為NavDestination時,觸發(fā)路由功能失效。
接口
NavRouter
NavRouter()
NavRouter10+
NavRouter(value: RouteInfo)
提供路由信息,指定點擊NavRouter時,要跳轉(zhuǎn)的NavDestination頁面。
參數(shù)名 | 參數(shù)類型 | 必填 | 參數(shù)描述 |
---|---|---|---|
value | [RouteInfo] | 否 | 路由信息 |
屬性
除支持[通用屬性]外,還支持以下屬性:
名稱 | 參數(shù)類型 | 描述 |
---|---|---|
mode | [NavRouteMode] | 指定點擊NavRouter跳轉(zhuǎn)到NavDestination頁面時,使用的路由模式。 默認值:NavRouteMode.PUSH_WITH_RECREATE |
RouteInfo10+對象說明
名稱 | 參數(shù)類型 | 必填 | 描述 |
---|---|---|---|
name | string | 是 | 點擊NavRouter跳轉(zhuǎn)到的NavDestination頁面的名稱。 |
param | unknown | 否 | 點擊NavRouter跳轉(zhuǎn)到NavDestination頁面時,傳遞的參數(shù)。 |
NavRouteMode枚舉類型說明
名稱 | 描述 |
---|---|
PUSH_WITH_RECREATE | 跳轉(zhuǎn)到新的NavDestination頁面時,替換當(dāng)前顯示的NavDestination頁面,頁面銷毀,但該頁面信息仍保留在路由棧中。 |
PUSH | 跳轉(zhuǎn)到新的NavDestination頁面時,覆蓋當(dāng)前顯示的NavDestination頁面,該頁面不銷毀,且頁面信息保留在路由棧中。 |
REPLACE | 跳轉(zhuǎn)到新的NavDestination頁面時,替換當(dāng)前顯示的NavDestination頁面,頁面銷毀,且該頁面信息從路由棧中清除。 |
事件
名稱 | 功能描述 |
---|---|
onStateChange(callback: (isActivated: boolean) => void) | 組件激活狀態(tài)切換時觸發(fā)該回調(diào)。返回值isActivated為true時表示激活,為false時表示未激活。**說明:**開發(fā)者點擊激活NavRouter,加載對應(yīng)的NavDestination子組件時,回調(diào)onStateChange(true)。NavRouter對應(yīng)的NavDestination子組件不再顯示時,回調(diào)onStateChange(false)。HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
示例
// xxx.ets
@Entry
@Component
struct NavRouterExample {
private arr: number[] = [0, 1, 2, 3]
@State isActive: boolean = false
@State dex: number = -1
build() {
Column() {
Navigation() {
List({ space: 12, initialIndex: 0 }) {
ForEach(this.arr, (item: number, index: number = 0) = > {
ListItem() {
NavRouter() {
Row() {
Image($r('app.media.icon')).width(30).height(30).borderRadius(30).margin({ left: 3, right: 10 })
Text(`NavRouter${item + 1}`)
.fontSize(22)
.fontWeight(500)
.textAlign(TextAlign.Center)
}
.width(180)
.height(72)
.backgroundColor(this.dex === index ? '#ccc' : '#fff')
.borderRadius(24)
NavDestination() {
Text(`我是NavDestination第${item + 1}頁內(nèi)容`).fontSize(50)
Flex({ direction: FlexDirection.Row }) {
Row() {
Image($r('app.media.icon')).width(40).height(40).borderRadius(40).margin({ right: 15 })
Text('今天共有七節(jié)課').fontSize(30)
}.padding({ left: 15 })
}
}.backgroundColor('#ccc')
.title(`NavDestination${item + 1}`)
}.onStateChange((isActivated: boolean) = > {
if(isActivated) {
this.dex = index;
}
})
}
}, (item:number) = > item.toString())
}
.height('100%')
.margin({ top: 12, left: 12 })
}
.mode(NavigationMode.Split)
.hideTitleBar(true)
.hideToolBar(true)
}.height('100%')
}
}
審核編輯 黃宇
-
組件
+關(guān)注
關(guān)注
1文章
504瀏覽量
17787 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2305瀏覽量
42696
發(fā)布評論請先 登錄
相關(guān)推薦
評論