W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Navigation組件一般作為頁(yè)面的根容器,包括單頁(yè)面、分欄和自適應(yīng)三種顯示模式。同時(shí),Navigation提供了屬性來(lái)設(shè)置頁(yè)面的標(biāo)題欄、工具欄、導(dǎo)航欄等。
Navigation組件的頁(yè)面包含主頁(yè)和內(nèi)容頁(yè)。主頁(yè)由標(biāo)題欄、內(nèi)容區(qū)和工具欄組成,可在內(nèi)容區(qū)中使用NavRouter子組件實(shí)現(xiàn)導(dǎo)航欄功能。內(nèi)容頁(yè)主要顯示NavDestination子組件中的內(nèi)容。
NavRouter是配合Navigation使用的特殊子組件,默認(rèn)提供點(diǎn)擊響應(yīng)處理,不需要開(kāi)發(fā)者自定義點(diǎn)擊事件邏輯。NavRouter有且僅有兩個(gè)子組件,其中第二個(gè)子組件必須是NavDestination。NavDestination是配合NavRouter使用的特殊子組件,用于顯示Navigation組件的內(nèi)容頁(yè)。當(dāng)開(kāi)發(fā)者點(diǎn)擊NavRouter組件時(shí),會(huì)跳轉(zhuǎn)到對(duì)應(yīng)的NavDestination內(nèi)容區(qū)。
Navigation組件通過(guò)mode屬性設(shè)置頁(yè)面的顯示模式。
Navigation組件默認(rèn)為自適應(yīng)模式,此時(shí)mode屬性為NavigationMode.Auto。自適應(yīng)模式下,當(dāng)設(shè)備寬度大于520vp時(shí),Navigation組件采用分欄模式,反之采用單頁(yè)面模式。
- Navigation() {
- ...
- }
- .mode(NavigationMode.Auto)
將mode屬性設(shè)置為NavigationMode.Stack,Navigation組件即可設(shè)置為單頁(yè)面顯示模式。
- Navigation() {
- ...
- }
- .mode(NavigationMode.Stack)
將mode屬性設(shè)置為NavigationMode.Split,Navigation組件即可設(shè)置為分欄顯示模式。
- @Entry
- @Component
- struct NavigationExample {
- private arr: number[] = [1, 2, 3];
- build() {
- Column() {
- Navigation() {
- TextInput({ placeholder: 'search...' })
- .width("90%")
- .height(40)
- .backgroundColor('#FFFFFF')
- List({ space: 12 }) {
- ForEach(this.arr, (item) => {
- ListItem() {
- NavRouter() {
- Text("NavRouter" + item)
- .width("100%")
- .height(72)
- .backgroundColor('#FFFFFF')
- .borderRadius(24)
- .fontSize(16)
- .fontWeight(500)
- .textAlign(TextAlign.Center)
- NavDestination() {
- Text("NavDestinationContent" + item)
- }
- .title("NavDestinationTitle" + item)
- }
- }
- }, item => item)
- }
- .width("90%")
- .margin({ top: 12 })
- }
- .title("主標(biāo)題")
- .mode(NavigationMode.Split)
- .menus([
- {value: "", icon: "./image/ic_public_search.svg", action: ()=> {}},
- {value: "", icon: "./image/ic_public_add.svg", action: ()=> {}},
- {value: "", icon: "./image/ic_public_add.svg", action: ()=> {}},
- {value: "", icon: "./image/ic_public_add.svg", action: ()=> {}},
- {value: "", icon: "./image/ic_public_add.svg", action: ()=> {}}
- ])
- .toolBar({items: [
- {value: "func", icon: "./image/ic_public_highlights.svg", action: ()=> {}},
- {value: "func", icon: "./image/ic_public_highlights.svg", action: ()=> {}},
- {value: "func", icon: "./image/ic_public_highlights.svg", action: ()=> {}}
- ]})
- }
- .height('100%')
- .width('100%')
- .backgroundColor('#F1F3F5')
- }
- }
標(biāo)題欄在界面頂部,用于呈現(xiàn)界面名稱(chēng)和操作入口,Navigation組件通過(guò)titleMode屬性設(shè)置標(biāo)題欄模式。
- Navigation() {
- ...
- }
- .titleMode(NavigationTitleMode.Mini)
強(qiáng)調(diào)型標(biāo)題欄,用于一級(jí)頁(yè)面需要突出標(biāo)題的場(chǎng)景。
- Navigation() {
- ...
- }
- .titleMode(NavigationTitleMode.Full)
菜單欄位于Navigation組件的右上角,開(kāi)發(fā)者可以通過(guò)menus屬性進(jìn)行設(shè)置。menus支持Array<NavigationMenuItem>和CustomBuilder兩種參數(shù)類(lèi)型。使用Array<NavigationMenuItem>類(lèi)型時(shí),豎屏最多支持顯示3個(gè)圖標(biāo),橫屏最多支持顯示5個(gè)圖標(biāo),多余的圖標(biāo)會(huì)被放入自動(dòng)生成的更多圖標(biāo)。
- Navigation() {
- ...
- }
- .menus([{value: "", icon: "./image/ic_public_search.svg", action: ()=>{}},
- {value: "", icon: "./image/ic_public_add.svg", action: ()=>{}},
- {value: "", icon: "./image/ic_public_add.svg", action: ()=>{}}])
- Navigation() {
- ...
- }
- .menus([{value: "", icon: "./image/ic_public_search.svg", action: ()=>{}},
- {value: "", icon: "./image/ic_public_add.svg", action: ()=>{}},
- {value: "", icon: "./image/ic_public_add.svg", action: ()=>{}},
- {value: "", icon: "./image/ic_public_add.svg", action: ()=>{}}])
- Navigation() {
- ...
- }
- .toolBar({items:[
- {value: "func", icon: "./image/ic_public_highlights.svg", action: ()=>{}},
- {value: "func", icon: "./image/ic_public_highlights.svg", action: ()=>{}},
- {value: "func", icon: "./image/ic_public_highlights.svg", action: ()=>{}}]})
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: