W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Navigation組件一般作為頁面的根容器,包括單頁面、分欄和自適應三種顯示模式。同時,Navigation提供了屬性來設置頁面的標題欄、工具欄、導航欄等。
Navigation組件的頁面包含主頁和內(nèi)容頁。主頁由標題欄、內(nèi)容區(qū)和工具欄組成,可在內(nèi)容區(qū)中使用NavRouter子組件實現(xiàn)導航欄功能。內(nèi)容頁主要顯示NavDestination子組件中的內(nèi)容。
NavRouter是配合Navigation使用的特殊子組件,默認提供點擊響應處理,不需要開發(fā)者自定義點擊事件邏輯。NavRouter有且僅有兩個子組件,其中第二個子組件必須是NavDestination。NavDestination是配合NavRouter使用的特殊子組件,用于顯示Navigation組件的內(nèi)容頁。當開發(fā)者點擊NavRouter組件時,會跳轉到對應的NavDestination內(nèi)容區(qū)。
Navigation組件通過mode屬性設置頁面的顯示模式。
Navigation組件默認為自適應模式,此時mode屬性為NavigationMode.Auto。自適應模式下,當設備寬度大于520vp時,Navigation組件采用分欄模式,反之采用單頁面模式。
- Navigation() {
- ...
- }
- .mode(NavigationMode.Auto)
將mode屬性設置為NavigationMode.Stack,Navigation組件即可設置為單頁面顯示模式。
- Navigation() {
- ...
- }
- .mode(NavigationMode.Stack)
將mode屬性設置為NavigationMode.Split,Navigation組件即可設置為分欄顯示模式。
- @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("主標題")
- .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')
- }
- }
標題欄在界面頂部,用于呈現(xiàn)界面名稱和操作入口,Navigation組件通過titleMode屬性設置標題欄模式。
- Navigation() {
- ...
- }
- .titleMode(NavigationTitleMode.Mini)
強調(diào)型標題欄,用于一級頁面需要突出標題的場景。
- Navigation() {
- ...
- }
- .titleMode(NavigationTitleMode.Full)
菜單欄位于Navigation組件的右上角,開發(fā)者可以通過menus屬性進行設置。menus支持Array<NavigationMenuItem>和CustomBuilder兩種參數(shù)類型。使用Array<NavigationMenuItem>類型時,豎屏最多支持顯示3個圖標,橫屏最多支持顯示5個圖標,多余的圖標會被放入自動生成的更多圖標。
- 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號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: