国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - 編程技術 - 嘗試用 ArkUI 做一個相冊應用

嘗試用 ArkUI 做一個相冊應用

2021-12-19 23:16鴻蒙社區亮子力 編程技術

新的編譯框架基于TS,相比于之前的JS代碼更簡潔,將原來的js、hml、css合并為了*.ets一個文件,而且更接近自然語義,學習成本很低。

嘗試用 ArkUI 做一個相冊應用

前言

今年的HDC華為開發者大會2021,華為又雙叒推出新的聲明式UI開發框架(ArkUI),咋說呢,學無止境啊,更新速度堪比坐火箭。雖然沒能到發布的現場比較遺憾,但是這并不妨礙我們擼代碼的熱情。我也是第一時間更新IDE,使用新的開發框架嘗試開發一款圖庫應用。先看效果:

嘗試用 ArkUI 做一個相冊應用

一、基本語法

新的編譯框架基于TS,相比于之前的JS代碼更簡潔,將原來的js、hml、css合并為了*.ets一個文件,而且更接近自然語義,學習成本很低。基本是下面的寫法:

  1. @裝飾器
  2. struct 組件名 {
  3. build(){
  4. //一個根容器組件,比如:
  5. Flex (接口){
  6. //內容
  7. }.屬性
  8. Tabs (接口){
  9. TabContent(接口) {
  10. //內容
  11. }
  12. }.屬性
  13. List (接口){
  14. ListItem(接口) {
  15. //內容
  16. }
  17. }.屬性
  18. }
  19. }

詳細的內容可以參考官方文檔:https://developer.harmonyos.com/cn/docs/documentation/doc-references/ts-general-ui-concepts-0000001215268053

目前支持的裝飾器:

嘗試用 ArkUI 做一個相冊應用

二、實現一個菜單欄

嘗試用 ArkUI 做一個相冊應用
嘗試用 ArkUI 做一個相冊應用

上面2個圖片使用了兩種不同的實現方式,第一種使用的是Tabs + TabContent,現成的組件實現也比較簡單,代碼如下:

  1. Tabs(
  2. { barPosition: BarPosition.End } //指定頁簽位置
  3. ) {
  4. TabContent() {
  5. Photo() //要實現的內容
  6. }.tabBar({
  7. icon: this.menuData[0].url,
  8. text: this.menuData[0].text
  9. })
  10. ... ...
  11. }

不過也有點問題。第一個就是圖一中的icon和text有點小,想把尺寸調大卻發現各種不支持,只能是這樣默認大小,不知道是不是我設置有問題,有知道怎么操作的大佬歡迎留言指點迷津。第二個問題,按理說TabContent內容是一樣的,可以使用ForEach+數組,但是也沒有成功。最終Tabs實現的效果著實讓人不太滿意,所以我使用了Flex基本布局 + ForEach 重新實現了圖二中的效果,代碼如下:

  1. Flex({
  2. direction: FlexDirection.Row, // 主軸:橫向布局
  3. alignItems: ItemAlign.Center, // 主軸:
  4. justifyContent: FlexAlign.SpaceEvenly
  5. }) {
  6. ForEach(this.menuData, (item) => {
  7. Column() { //列方向布局容器
  8. this.MenuItem(item.url, item.text)
  9. }
  10. .onClick(() => {
  11. console.info("memememe")
  12. })
  13. })
  14. }

源數據:

  1. //State:數據變化觸發build(),實現UI更新
  2. @State menuData: Array<any> = [
  3. { url: $r("app.media.0"), text: "照片" },
  4. { url: $r("app.media.1blue"), text: "相冊" },
  5. { url: $r("app.media.2"), text: "時刻" },
  6. { url: $r("app.media.3"), text: "發現" }

菜單項:

  1. @Builder MenuItem(url, text) {
  2. Column() {
  3. Image(url)
  4. .objectFit(ImageFit.Contain) // 保持長寬比縮小或放大,以便圖像完全顯示在顯示邊界內。
  5. .width('60%').height('60%')
  6. Text(text)
  7. .fontSize(14)
  8. }
  9. }

總體來看Flex + ForEach效果的實現更自由一些,但是點擊交互切換標簽等操作都需要手動實現,不如組件化的Tabs方便,或許以后會支持把。

三、實現照片區域

首先照片區域使用了下面的數據格式:

  1. @State photoData: Array<any> = [
  2. {
  3. date: "昨天",
  4. photos: [{ src: $r("app.media.today1") }, { src: $r("app.media.today2") }, { src: $r("app.media.today3") }]
  5. },
  6. {
  7. date: "2021年10月27日",
  8. photos: [{ src: $r("app.media.today4") }, { src: $r("app.media.today5") }, { src: $r("app.media.today6") }, {
  9. src: $r("app.media.today7")
  10. }]
  11. },
  12. {
  13. date: "2021年10月26日",
  14. photos: [{ src: $r("app.media.today8") }]
  15. },
  16. {
  17. date: "2021年10月25日",
  18. photos: [{ src: $r("app.media.today9") },{ src: $r("app.media.today11") }]
  19. },
  20. {
  21. date: "2021年10月24日",
  22. photos: [{ src: $r("app.media.today10") }]
  23. }
  24. ,
  25. {
  26. date: "2021年10月23日",
  27. photos: [{ src: $r("app.media.today1") }]
  28. }
  29. ]

所以可以使用ForEach循環嵌套的方式,只需要簡單的代碼,就可以實現照片列表的效果。

  1. // 照片區
  2. List() {
  3. ForEach(this.photoData, (item) => {
  4. ListItem() {
  5. Flex({ direction: FlexDirection.Column }) {
  6. Text(item.date).fontSize(18).margin({ top: 20,left:15,bottom:5 })
  7. Flex({ direction: FlexDirection.Row }) {
  8. ForEach(item.photos, (item) => {
  9. Image(item.src).objectFit(ImageFit.Cover).width(80).height(80).margin({right:2})
  10. })
  11. }
  12. }
  13. }
  14. })

代碼打包上傳了,感興趣的小伙伴,可以下載源碼查看。時間有限,先體驗這么多,有新的心得再來發帖和大家交流。

https://harmonyos.51cto.com/resource/1585

原文鏈接:https://harmonyos.51cto.com

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲精品成人悠悠色影视 | 91在线视频在线 | a天堂中文在线观看 | 久草视频网站 | 国内自拍网站 | 日本精品久久久 | 亚洲欧洲tv | 国产欧美综合一区二区三区 | 午夜在线影院 | 国产精品久久久久久久久久免费动 | 另类视频区 | 亚洲成人精品 | 天天干天天操 | 三级视频在线观看 | 亚洲精品国产综合 | 亚洲一区观看 | 色接久久 | 亚洲视频第一页 | 在线电影亚洲 | 一级免费视频 | 91精品久久久久久久久久 | 日韩精品在线一区二区 | 亚洲精品久久 | 欧美一区二区三区在线视频 | 国产精品久久久久久中文字 | 综合久久精品 | 国产精品伦一区二区三级视频 | 91免费在线 | 免费观看电视在线高清视频 | 久久精品日产第一区二区三区 | 中文字幕在线观看精品视频 | 国产精品美女一区 | 欧美精品v国产精品v日韩精品 | 伊人色私人影院蜜桃va | 午夜精品在线观看 | 黄色影片免费在线观看 | 国产精品一区欧美 | 亚洲国产综合在线 | 日本中文字幕一区 | 免费污视频在线 | 综合亚洲精品 |