成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何實現抽屜式導航(ArkUI)

系統 OpenHarmony
當導航欄的空間放不下過多頁簽時,可以采用抽屜式導航,本例將為大家介紹如何通過SideBarContainer組件實現抽屜式導航。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

場景介紹

由于用戶所需功能逐漸增多,傳統的標簽式導航在個別場景已經無法滿足用戶需求。當導航欄的空間放不下過多頁簽時,可以采用抽屜式導航,本例將為大家介紹如何通過SideBarContainer組件實現抽屜式導航。

效果呈現

本例最終實現效果如下:

運行環境

  • IDE:DevEco Studio 3.1 Beta1
  • SDK:Ohos_sdk_public 3.2.11.9 (API Version 9 Release)

實現思路

  • 通過SideBarContainer組件提供容器,通過子組件定義側邊欄和內容區,第一個子組件表示側邊欄,第二個子組件表示內容區。
  • 調用showSideBar屬性來設置不顯示側邊欄,controlButton屬性來控制完成側欄的展示/收起。

開發步驟

創建內容區域文本組件。

首先創建內容區,具體代碼塊如下:

...
//  內容區
Column() {
  Text("內容區域")
    .width("100%")
    .height("100%")
    .fontSize(30)
    .textAlign(TextAlign.Center)
}
.width("100%")
.height("100%")
.backgroundColor("#bbaacc")
...

通過SideBarContainer所支持的showSideBar屬性來設置不顯示側邊欄,controlButton屬性來控制完成側欄的展示/收起。

具體代碼塊如下:

...
.showSideBar(false) //默認不展示側邊欄,展示icon,用戶點擊調出
.controlButton({
  left: 10, // 圖標距離左側寬度
  top: 20, // 圖標距離頂部高度
  height: 30, // 圖標高度
  width: 30, //  圖標寬度
  icons: {
    shown: $r('app.media.back'), // 側邊欄展示時圖標
    hidden: $r('app.media.sidebar_shown'), // 側邊欄收起時圖標
    switching: $r('app.media.sidebar_shown') // 側邊欄切換過程圖標
  }
})
...

創建側邊欄文本組件。

具體代碼如下:

...
struct SideBarContainerExample {
@ State navList: Array<string> = ["我的會員", "我的收藏", "我的相冊", "我的文件",]
  build() {
    SideBarContainer(SideBarContainerType.Embed) {
    //  側邊欄內容
      Column() {
        ForEach(this.navList, (item) => {
          Text(item)
            .width("100%")
            .fontSize(20)
            .textAlign(TextAlign.Start)
            .padding({ top: 20 })
        })
      }
    .height("100%")
    .padding({ top: 60, left: 50 })
    .backgroundColor("#aabbcc")
    }
...
  }
}

完整代碼

示例完整代碼如下:

@Entry
@Component
struct SideBarContainerExample {
  @State navList: Array<string> = ["我的會員", "我的收藏", "我的相冊", "我的文件",]

  build() {
    // Embed:側邊欄占據內容空間 Overlay:側邊欄懸浮于內容之上
    SideBarContainer(SideBarContainerType.Embed) { 
      // 側邊欄內容
      Column() {
        ForEach(this.navList, (item) => {
          Text(item)
            .width("100%")
            .fontSize(20)
            .textAlign(TextAlign.Start)
            .padding({ top: 20 })
        })
      }
      .height("100%")
      .padding({ top: 60, left: 50 })
      .backgroundColor("#aabbcc")
      // 內容區
      Column() {
        Text("內容區域")
          .width("100%")
          .height("100%")
          .fontSize(30)
          .textAlign(TextAlign.Center)
      }
      .width("100%")
      .height("100%")
      .backgroundColor("#bbaacc")
    }
    // 默認不展示側邊欄,展示icon,用戶點擊調出
    .showSideBar(false) 
    .controlButton({
      // 圖標距離左側寬度
      left: 10, 
      // 圖標距離頂部高度
      top: 20, 
      // 圖標高度
      height: 30, 
      // 圖標寬度
      width: 30, 
      icons: {
        // 側邊欄展示時圖標
        shown: $r('app.media.back'), 
        // 側邊欄收起時圖標
        hidden: $r('app.media.sidebar_shown'), 
        // 側邊欄切換過程圖標
        switching: $r('app.media.sidebar_shown') 
      }
    })
    // 側邊欄寬度
    .sideBarWidth(200) 
    .width('100%')
    .height('100%')
  }
}

注意:模擬機與真機的預覽有區別,在SideBarContainerType.Embed情況下,真機中內容區域是壓縮,模擬器中內容區域是缺失。

總結

Tabs組件: 適用于導航欄固定在頁面上下左右側,入口分類數目不多,可以控制在5個以內,且用戶需要頻繁切換每一個頁簽的應用,比如微信、QQ等。

Navigation組件: 同樣可以實現Tabs組件中導航欄位于底部的場景,根據需要顯示隱藏導航欄,提供標題,菜單,返回等選項,使用戶是使用時更加靈活。

sideBarContainer組件:主要的功能和內容都在一個頁面里面,只是一些低頻操作內容需要顯示在其他頁面里,可以把這些輔助功能放在抽屜欄里。屏幕較小時導航欄不占用空間。比如QQ,開發指導文檔等。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2022-08-08 19:46:26

ArkUI鴻蒙

2022-04-08 14:47:11

ArkUI列表字母索引鴻蒙

2024-05-16 08:18:55

TabsArkUI增刪頁簽功能

2023-12-11 17:15:05

應用開發波紋進度條ArkUI

2023-06-06 15:38:28

HTMLCSS開發

2010-09-13 14:32:39

CSS橫向導航

2022-11-15 18:31:37

React

2022-09-02 15:17:04

ArkUI鴻蒙

2022-08-23 16:07:02

ArkUI鴻蒙

2024-06-13 08:15:00

2024-01-11 15:54:55

eTS語言TypeScript應用開發

2023-12-29 08:06:40

開源軟件導航前端

2024-08-29 08:13:58

2023-08-21 19:10:34

Redis分布式

2011-10-13 15:04:12

Windows Ser

2022-07-13 16:24:12

ArkUI(JS)打地鼠游戲

2022-08-25 21:41:43

ArkUI鴻蒙

2022-09-21 14:51:21

ArkUI信件彈出

2022-07-04 16:34:46

流光按鈕Stack
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜影院在线观看视频 | 中文字幕一区二区三区乱码图片 | 久久精品国产亚洲a | 久久久久久免费观看 | 一级国产精品一级国产精品片 | 国产精品国产三级国产aⅴ无密码 | 性欧美精品一区二区三区在线播放 | 亚洲三区在线观看 | 天天射网站 | 成人免费看片又大又黄 | 在线观看国产视频 | 成人综合视频在线观看 | 丁香六月激情 | 欧美黑人体内she精在线观看 | 亚欧精品一区 | 午夜在线| 日韩免费视频一区二区 | 国产精品69av| 成人午夜电影在线观看 | 中文字幕 国产 | 精品国产一区二区三区久久久蜜月 | 日日操夜夜操天天操 | 国产福利一区二区 | 日韩视频一区 | 日韩色图视频 | 久久狠狠 | 2019天天干夜夜操 | 激情欧美日韩一区二区 | 久久99精品久久久久久 | 日韩在线观看网站 | 久久久久久亚洲精品 | 国产一区二区在线免费观看 | 日韩在线一区视频 | 精品国产欧美一区二区 | av天天干 | 亚洲成人一区二区 | 男人的天堂中文字幕 | 91精品国产乱码久久久久久久久 | 午夜影院黄 | 国产99久久精品一区二区永久免费 | 亚洲36d大奶网 |