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

鴻蒙HarmonyOS應(yīng)用開發(fā)項目實戰(zhàn)-在線課堂TV(二)

開發(fā) OpenHarmony
文章由鴻蒙社區(qū)產(chǎn)出,想要了解更多內(nèi)容請前往:51CTO和華為官方戰(zhàn)略合作共建的鴻蒙技術(shù)社區(qū)https://harmonyos.51cto.com/#zz

首頁模塊開發(fā)之一

首頁動態(tài)效果圖展示


效果圖分解


知識點講解:

布局說明:

JS UI框架中智慧屏以720px(px指邏輯像素,非物理像素)為基準(zhǔn)寬度,根據(jù)實際屏幕寬度進行縮放,例如當(dāng)width設(shè)為100px時,在寬度為1440物理像素的屏幕上,實際顯示的寬度為200物理像素。智能穿戴的基準(zhǔn)寬度為454px,換算邏輯同理。

一個頁面的基本元素包含標(biāo)題區(qū)域、文本區(qū)域、圖片區(qū)域等,每個基本元素內(nèi)還可以包含多個子元素,開發(fā)者根據(jù)需求還可以添加按鈕、開關(guān)、進度條等組件。在構(gòu)建頁面布局時,需要對每個基本元素思考以下幾個問題:

該元素的尺寸和排列位置

是否有重疊的元素

是否需要設(shè)置對齊、內(nèi)間距或者邊界

是否包含子元素及其排列位置

是否需要容器組件及其類型

將頁面中的元素分解之后再對每個基本元素按順序?qū)崿F(xiàn),可以減少多層嵌套造成的視覺混亂和邏輯混亂,提高代碼的可讀性,方便對頁面做后續(xù)的調(diào)整。

組件介紹:

組件(Component)是構(gòu)建頁面的核心,每個組件通過對數(shù)據(jù)和方法的簡單封裝,實現(xiàn)獨立的可視、可交互功能單元。組件之間相互獨立,隨取隨用,也可以在需求相同的地方重復(fù)使用。開發(fā)者還可以通過組件間合理的搭配定義滿足業(yè)務(wù)需求的新組件,減少開發(fā)量,自定義組件的開發(fā)方法詳見后面的自定義組件。

組件分類

根據(jù)組件的功能,可以將組件分為以下四大類:


動手開發(fā)--新建模塊(Module):

注意:我這里省去了HelloWorld工程的創(chuàng)建,如果不會HelloWorld的請自行查看官網(wǎng)工具使用介紹。為了更好的循序漸進演示項目的迭代成型,我這里用一個Module為一個demo代碼進行編寫,下一個demo的Module會在前一個的基礎(chǔ)上進行開發(fā),直到最后項目成型。

如果您已經(jīng)創(chuàng)建好了一個TV 版JS UI開發(fā)的HelloWorld工程,請參照下面的步驟創(chuàng)建一個Module




給自己模塊取個名字,注意名字首個字符為字母,并且不要包含特殊字符,我這里取名為IcollegeTVDemo1,創(chuàng)新好之后的工程結(jié)構(gòu)如下圖


項目創(chuàng)建完成之后,推薦大家使用git進行托管起來哦!

動手開發(fā)--技術(shù)棧分析:

我們已經(jīng)把布局做好了切割,并且對鴻蒙系統(tǒng)JS UI開發(fā)做了簡單介紹,下面我們來選取合適的容器和組件進行開發(fā)。

首先整個頁面時放置在一個根容器div里面,該div采用垂直方向至上而下布局,頁面里面的頂部采用div容器水平居右排列,該div內(nèi)部放置一個搜索框和一張用戶圖片。然后該div下面放置一個tabs容器,能夠通過點擊tab切換子頁面,并且滑動子頁面能夠切換tab標(biāo)簽。

思考:

1、div容器如何使用?如何橫向排列和縱向排列,如何設(shè)置居中、居左、居右,如何設(shè)置寬度和高度,如何設(shè)置留白空間。

2、tabs容器如何使用,如何添加tabs標(biāo)簽,如何添加子頁面,如何讓tab標(biāo)簽變化跟隨子頁面變化?

解決思路:查找鴻蒙官方API手冊

div容器api介紹地址:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-components-container-div-0000000000611484

tabs容器api介紹地址:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/js-components-container-tabs-0000000000611572

作為一個開發(fā)者,最好的方式就是多閱讀官方API,我也是通讀了好幾遍之后才開始著手這個項目開發(fā)的

動手開發(fā)--代碼編寫--添加頂部布局:

編寫Module下的index.hml代碼:

  1. <div class="container"
  2.     <div class="top"
  3.         <search class="search" focusable="false"></search> 
  4.         <image src="common/image/user.png" class="user" ></image> 
  5.     </div> 
  6. </div> 

 重點講解:

注意該文件后綴是hml,并不是html。它里面的組件是由鴻蒙底層使用c語言編寫封裝而成的,并不是html中的標(biāo)簽,所以一定不要想著把html里的標(biāo)簽在這里面寫,比如

<ul>和<li>標(biāo)簽,在hml里面就沒有這個組件,具體能使用哪些組件請以鴻蒙官方api手冊為準(zhǔn)。

<div>是容器組件,一般用來承載組件。

<image>是圖片組件,用來添加圖片,src指定圖片路徑,這里指定的本地路徑,需要先在common目錄下創(chuàng)建image文件夾,并且放置相應(yīng)圖片。

 <search>是搜索組件。

編寫index.css代碼:

  1. .container { 
  2.     flex-direction: column
  3.     padding-left: 10px; 
  4.     align-items:flex-start; 
  5.  
  6. .top { 
  7.     flex-direction: row; 
  8.     height: 36px; 
  9.     justify-content:flex-end
  10.     align-items: center; 
  11.  
  12. .user { 
  13.     height:32px; 
  14.     width: 32px; 
  15.     margin-right: 20px; 
  16.  
  17. .search{ 
  18.     width: 200px; 
  19.     height:32px; 
  20.     padding: 5px; 

 重點講解:

JS UI布局方式默認(rèn)采用的是flex布局,這個布局與web開發(fā)中的css3里面的flex基本一致,只是有個別屬性在鴻蒙中不存在,具體屬性以鴻蒙官網(wǎng)手冊為準(zhǔn)。

flex-direction是主軸排列方向及內(nèi)部組件排列方向,column是豎直方向排列,row是水平方向排列。詳細了解請看另一篇flex布局詳解以及官方api介紹。

align-items是定義子組件如何在交叉軸上對齊

justify-content:定義了子組件如何在主軸上對齊

此時我們來查看下運行效果


當(dāng)寫好代碼之后,我們可以在模擬器中運行查看效果,根據(jù)效果再來修改代碼,注意模擬器是沒有像瀏覽器F12那種直接調(diào)試標(biāo)簽和css樣式的功能的。

小技巧:如果想調(diào)整css細節(jié),可以給組件加上不同顏色的border邊框,來觀察細節(jié)

動手開發(fā)--代碼編寫--添加tabs容器:

繼續(xù)完善上面的index.hml文件,在top這個div下面添加如下代碼:

  1. <tabs> 
  2.     <tab-bar> 
  3.         <text for="{{todolist}}"
  4.             {{$item.title}} 
  5.         </text> 
  6.     </tab-bar> 
  7.     <tab-content> 
  8.         <text> 
  9.             “我的”頁面正在開發(fā)中,敬請期待 
  10.         </text> 
  11.         <text> 
  12.             “推薦”頁面正在開發(fā)中,敬請期待 
  13.         </text> 
  14.         <text> 
  15.             “直播間”頁面正在開發(fā)中,敬請期待 
  16.         </text> 
  17.         <text> 
  18.             “社區(qū)”頁面正在開發(fā)中,敬請期待 
  19.         </text> 
  20.         <text> 
  21.             “測評”頁面正在開發(fā)中,敬請期待 
  22.         </text> 
  23.     </tab-content> 
  24. </tabs> 

 重點講解:

<tabs>是一個容器組件,子組件默認(rèn)包含有且僅有一個tab-bar容器組件和tab-content容器組件,tab-bar時tab標(biāo)簽,tab-content是內(nèi)容

這里采用for屬性去循環(huán)遍歷在tab-bar下生成了一組text文本組件。for中采用{{}}的形式獲取js中的數(shù)據(jù),這里采用的是MVVM設(shè)計模式,和Vue里面的用法類似,當(dāng)js中定義的數(shù)據(jù)發(fā)生變化的時候,組件的內(nèi)容隨之會發(fā)生變化。我這里在js里面定義了一個todolist數(shù)組,里面保存了5條數(shù)據(jù)。

同理,在tab-content下面同樣也設(shè)置了5個組件與之對應(yīng)。這里的數(shù)據(jù)也可以寫成for循環(huán)從js里面取。

只是我后面這里會加載自定義組件,就不寫取js數(shù)據(jù)了。

編寫index.js文件代碼 

  1. export default { 
  2.     data: { 
  3.         tabIndex: 1, 
  4.         show: false
  5.         todolist: [{ 
  6.                        title: '我的'
  7.                        imgSrc: 'common/img1.jpg'
  8.                    }, 
  9.                    { 
  10.                        title: '推薦'
  11.                        imgSrc: 'common/img2.jpg'
  12.                    }, 
  13.                    { 
  14.                        title: '直播間'
  15.                        imgSrc: '社區(qū)'
  16.                    }, 
  17.                    { 
  18.                        title: '社區(qū)'
  19.                        imgSrc: 'common/img4.jpg'
  20.                    }, 
  21.                    { 
  22.                        title: '測評'
  23.                        imgSrc: 'common/img5.jpg'
  24.                    } 
  25.         ] 
  26.     } 

 重點講解:

在JS UI框架的TV開發(fā)中遵循ES6語法,但是穿戴設(shè)備中只能部分支持ES6語法。

這里填寫了幾條數(shù)據(jù),tabindex是設(shè)置tab的索引使用的。

動手開發(fā)--代碼編寫--修改焦點和tab的默認(rèn)索引

此時先查看下運行效果


此時我們看到tab標(biāo)簽欄的效果和我們最初要達到的效果圖不一致,tab標(biāo)簽欄沒有獲取到焦點,查找官方api手冊發(fā)現(xiàn)tab組件并沒有設(shè)置焦點的方法。于是采用設(shè)置屬性的方法進行解決。此界面的默認(rèn)焦點被搜索框獲取了,于是我們想到關(guān)閉掉搜索框的焦點,tab就會自動獲取焦點。設(shè)置search組件的focusable屬性為false即可。

  1. <search class="search" focusable="false"></search> 

同時我們切換下tab的默認(rèn)索引為“推薦”這個tab,修改代碼如下

  1. <tabs index="{{tabIndex}}"

本章小結(jié)

了解鴻蒙的布局結(jié)構(gòu)與常用容器組件與基礎(chǔ)組件,會根據(jù)UI效果圖拆分布局

掌握div組件的使用,能夠編寫css樣式,掌握div布局的排列與對齊方式

掌握tabs系列組件的基本使用

能夠編寫JS代碼,掌握hml模板文件獲取js數(shù)據(jù)更新組件的方法。

©著作權(quán)歸作者和HarmonyOS技術(shù)社區(qū)共同所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com/#zz

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2020-12-09 11:53:24

鴻蒙開發(fā)HelloWord

2020-11-09 11:56:49

HarmonyOS

2022-08-09 16:01:24

應(yīng)用開發(fā)鴻蒙

2020-12-17 12:06:49

鴻蒙應(yīng)用鴻蒙開發(fā)

2021-07-14 05:55:12

鴻蒙HarmonyOS應(yīng)用

2020-12-04 09:52:22

鴻蒙OS

2020-09-28 15:13:04

鴻蒙

2020-12-25 10:52:28

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-02-07 12:08:39

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-06-24 09:32:00

鴻蒙HarmonyOS應(yīng)用

2021-09-23 14:41:58

鴻蒙HarmonyOS應(yīng)用

2021-01-14 12:06:22

鴻蒙HarmonyOSAI應(yīng)用

2022-08-15 22:09:37

設(shè)備開發(fā)開發(fā)筆記

2021-04-16 16:21:02

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-07-05 14:29:28

鴻蒙HarmonyOS應(yīng)用

2021-01-19 12:33:32

鴻蒙HarmonyOS應(yīng)用開發(fā)

2021-01-19 10:09:02

鴻蒙HarmonyOS應(yīng)用

2022-08-25 21:46:51

網(wǎng)絡(luò)通訊應(yīng)用開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产特级毛片aaaaaa喷潮 | 成人免费网站www网站高清 | 欧美一级www片免费观看 | 久久爱综合 | 色综合久 | 欧产日产国产精品国产 | 成人一区二区三区在线观看 | 亚洲va国产日韩欧美精品色婷婷 | 青青草国产在线观看 | 九九热在线视频免费观看 | 精品日韩一区二区 | 久久久久久一区 | 午夜精品网站 | 网站黄色在线 | 自拍中文字幕 | 日韩在线免费 | 国产区一区二区三区 | 成人高清在线视频 | 亚洲色图综合 | 国产精品视频在线播放 | 精品久久久久国产免费第一页 | 国产99久久久久 | 婷婷一级片 | 日本一区不卡 | 日韩毛片在线观看 | 九九久久久久久 | 国产乱码精品1区2区3区 | 一级毛片视频 | av首页在线 | 日韩精品久久久久 | 日日碰狠狠躁久久躁婷婷 | 黄色精品 | 狠狠色综合久久丁香婷婷 | 亚洲精品久久久久久一区二区 | 中文字幕免费在线 | 99久久婷婷国产综合精品电影 | 日韩图区| 国产精品国产精品国产专区不卡 | 欧美日韩在线播放 | 成人免费观看男女羞羞视频 | 精品国产一区二区三区在线观看 |