精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

鴻蒙HarmonyOS應(yīng)用開發(fā)-Component體系介紹(一)

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

[[381244]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問:

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

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

在HarmonyOS的UI框架中,Component為用戶界面提供基本組件,Component類位于ohos.agp.components包中,直接派生自java.lang.Object,并且是HarmonyOS中所有界面組件的直接或間接父類。每一個(gè)組件在屏幕上占用一個(gè)矩形區(qū)域,在這個(gè)區(qū)域中對(duì)繪制和事件處理做出響應(yīng)。Conpoment是其他控件的基類,用于創(chuàng)建交互式的各類組件。Component的直接子類ComponentContainer是所有布局的基類,為其他組件或組件組定義布局屬性。下面來看一下Component在HarmonyOS中的繼承體系(橙色邊框類只列出部分子類):


Component的直接子類組件有6個(gè),這6個(gè)組件在功能上可劃分為兩類,一類是顯示類交互組件如Text、Image、IindexBar、ProcessBar和PageSliderIndicator,另一類是容器類組件ComponentContainer及其子類,用于容納其他布局或者組件,值得注意一點(diǎn),ComponentContainer類是一個(gè)抽象類,是所有布局或容器組件的父類。為便于理解,下圖展示一個(gè)簡(jiǎn)易的網(wǎng)站頁面的組成結(jié)構(gòu):


在上圖中可以看出,最外層Layout1是一個(gè)布局組件,用來容納其他種類的組件;頭部是一個(gè)Image組件,用來展示圖片,在中間部分的左側(cè)是一個(gè)列表類的容器組件,用于容納多個(gè)Text組件;在中間部分右側(cè)又是一個(gè)Layout組件,以此類推,最下面的Layout3組件中,容納了兩個(gè)Button組件。上面只是一個(gè)簡(jiǎn)單頁面組成元素的示例,在實(shí)際開發(fā)過程中,正式編碼之前也要做一個(gè)頁面規(guī)劃,這樣才能夠在開發(fā)中對(duì)自己頁面有一個(gè)整體的清晰認(rèn)識(shí)。

在了解Component類是什么之后,接下來為大家介紹Component類的內(nèi)部組成。首先Component類是一個(gè)嵌套類(其他組件類也是嵌套類),在Component類內(nèi)部定義了眾多內(nèi)部類/接口,除此之外還定義了各種獲取和設(shè)置組件屬性信息的方法。

1. Component的內(nèi)部類/接口

Component的內(nèi)部類通常是監(jiān)聽器(大多以Listener結(jié)尾),,用于回調(diào)從而對(duì)界面元素變化做出響應(yīng),在Harmony OS中,為組件注冊(cè)監(jiān)聽器由統(tǒng)自動(dòng)注冊(cè),并且響應(yīng)事件的回調(diào)方法也有操作系統(tǒng)自動(dòng)調(diào)用。其次,這些監(jiān)聽器主要用于監(jiān)聽如單擊、雙擊、長(zhǎng)按、以界面元素繪制等事件,在這些事件中,編程人員可以在回調(diào)方法中自定義事件處理邏輯來對(duì)這些事件做出響應(yīng)。以下代碼片段展示如何為Button設(shè)置事件監(jiān)聽器:

  1. //為按鈕設(shè)置點(diǎn)擊回調(diào):第一種寫法,直接實(shí)例化監(jiān)聽器接口并實(shí)現(xiàn)回調(diào)方法onClick 
  2. Button button = (Button) findComponentById(ResourceTable.Id_button);  
  3. button.setClickedListener(new Component.ClickedListener() { 
  4. @Override 
  5. public void onClick(Component component) { 
  6.     /* 
  7.         開發(fā)人員可以自定義事件處理邏輯,如獲取組件、啟動(dòng)新的bility等 
  8.          */ 
  9. Text text = (Text) component.findComponentById(ResourceTable.Id_type_text); 
  10. }); 
  11.  
  12. /* 
  13. 為按鈕設(shè)置點(diǎn)擊回調(diào):第二種寫法,lambda表達(dá)式寫法,前提要知道監(jiān)聽器中方法的參數(shù)列表:如下面的“(component)”的參數(shù)個(gè)數(shù)與監(jiān)聽器里的方法onClick的參數(shù)個(gè)數(shù)相同即可 
  14. */ 
  15. Button button = (Button) findComponentById(ResourceTable.Id_button);  
  16. button.setClickedListener((component) -> { 
  17.         /* 
  18.          開發(fā)人員可以自定義事件處理邏輯,如獲取組件、啟動(dòng)新的bility等 
  19.          */ 
  20. Text text = (Text) component.findComponentById(ResourceTable.Id_type_text); 
  21. }); 

 在上面的代碼片段中,分兩種方式演示了如何獲取組件元素并且設(shè)置組件的點(diǎn)擊事件監(jiān)聽器。

在第一種方式中,通過實(shí)例化Component的內(nèi)部靜態(tài)接口ClickedListener來為button設(shè)置監(jiān)聽器,同時(shí)開發(fā)人員需要實(shí)現(xiàn)監(jiān)聽器的方法onClick來編寫具體業(yè)務(wù)邏輯代碼。在第二種方式種,使用lambda表達(dá)式寫法,setClickedListener的參數(shù)為函數(shù),這種寫法相對(duì)簡(jiǎn)潔,但前提是開發(fā)者需要知道組件監(jiān)聽器的回調(diào)方法的參數(shù)列表,如button的onClick方法只有一個(gè)參數(shù)Component,當(dāng)為其他組件添加監(jiān)聽器時(shí),同樣推薦使用lambda的方式,為加強(qiáng)理解,下面再以ListContainer為例,為L(zhǎng)istContainer的列表元素添加點(diǎn)擊事件:

  1. ListContainer newsListContainer = findComponentById(ResourceTable.Id_news_container); 
  2. newsListContainer.setItemClickedListener((listContainer, component, i, l) -> { 
  3.      /* 
  4.         開發(fā)人員可以自定義事件處理邏輯,如獲取組件、啟動(dòng)新的bility等 
  5.          */ 
  6. Text text = (Text) component.findComponentById(ResourceTable.Id_type_text); 
  7. }); 

 在上述的代碼片段中,setItemClickedListener同樣使用lambda表達(dá)式設(shè)置監(jiān)聽器,而如果使用普通方式,則如下代碼片段,需要實(shí)例化ListContainer.ItemClickedListener接口并且實(shí)現(xiàn)onItemClicked方法:

  1. ewsListContainer.setItemClickedListener(new ListContainer.ItemClickedListener() { 
  2. @Override 
  3.     public void onItemClicked(ListContainer listContainer, Component component, int i, long l) { 
  4.         /* 
  5.         開發(fā)人員可以自定義事件處理邏輯,如獲取組件、啟動(dòng)新的bility等 
  6.          */ 
  7. Text text = (Text) component.findComponentById(ResourceTable.Id_type_text); 
  8.     } 
  9. }); 

 細(xì)心的朋友可能會(huì)發(fā)現(xiàn),在獲取Button組件時(shí)直接使用findComponentById方法,而獲取Text組件時(shí)是使用component.findComponentById方法,這兩種方式由何不同呢?其實(shí)在Component類中,定義了獲取指定組件的方法findComponentById;而在Ability類中也聲明了獲取組件的方法findComponentById,只不過Ability的findComponentById方法內(nèi)部依然通過調(diào)用Component類中的findComponentById來獲取組件。知道這兩種獲取組件的方法后,可以根據(jù)實(shí)際需要選擇合適的方式來獲取組件信息。

2. Component方法簡(jiǎn)介

在Component類中定義了幾十種方法用于設(shè)置和獲取組件信息,方便開發(fā)人員創(chuàng)造自己應(yīng)用,這些方法大體可歸納如下幾類,處于篇幅原因不一一列舉:

1)設(shè)置和獲取組件布局信息,如位置、邊距等

(1) public int getBottom​();Obtains the bottom edge position of a component relative to the parent layout.

(2) public int[] getMargins​();Obtains the left, top, right, and bottom margins of this component.

(3) public int[] public int getPaddingLeft​();Obtains the left padding of the component.

2)設(shè)置和獲取組件繪制屬性信息,如大小尺寸、邊角樣式、可見性等

(1) public int getHeight​();獲取組件高度.

(2) public void setFocusBorderRadius​(float[] radii);設(shè)置獲得焦點(diǎn)的邊框圓角

(3) public void setVisibility​(int visibility);設(shè)置組件的可見性.

3)設(shè)置和獲取組件狀態(tài)信息,如焦點(diǎn)、是否可點(diǎn)擊、是否可用等

(1) public int getFocusable​();獲取組件是否可以獲得焦點(diǎn)

(2) public void setClickable​(boolean clickable);設(shè)置組件是否可以點(diǎn)擊.

(3) public void setEnabled​(boolean enabled);設(shè)置組件是否可用

4)設(shè)值組件監(jiān)聽器以及上下文等信息

(1) public void setClickedListener​(Component.ClickedListener listener);給組件設(shè)置點(diǎn)擊事件監(jiān)聽器

(2) public Context getContext​();獲取由當(dāng)前組件持有的上下文信息

二、總結(jié)

在HarmonyOS應(yīng)用開發(fā)過程中,對(duì)組件的繼承體系以及組件所具有的能力有一個(gè)整體認(rèn)知是十分必要的,這樣在開發(fā)過程中可以做到心中有數(shù),在學(xué)會(huì)一個(gè)組件的使用方式之后,也會(huì)順其自然的學(xué)會(huì)其他組件的使用,從而不必受到眾多組件的特性所困擾。在未來幾期文章中,會(huì)注意對(duì)Component的直接子類組件進(jìn)行講解。出于個(gè)人水平有限,如文章知識(shí)點(diǎn)有錯(cuò)誤或不當(dāng)之處,歡迎各位小伙伴積極指正并深入交流。微信公眾號(hào):架構(gòu)派

 

想了解更多內(nèi)容,請(qǐng)?jiān)L問:

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

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

 

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

2020-11-09 11:56:49

HarmonyOS

2020-09-28 15:13:04

鴻蒙

2021-06-24 09:32:00

鴻蒙HarmonyOS應(yīng)用

2020-12-03 10:05:07

鴻蒙OS

2020-12-24 12:01:16

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

2022-08-09 16:01:24

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

2021-01-11 11:04:49

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

2022-08-25 21:46:51

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

2021-01-15 09:50:06

鴻蒙HarmonyOSAI應(yīng)用

2021-01-14 09:50:26

鴻蒙HarmonyOSAPP

2024-03-26 15:19:36

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

2021-01-18 13:26:06

鴻蒙HarmonyOS應(yīng)用

2021-07-14 05:55:12

鴻蒙HarmonyOS應(yīng)用

2011-08-08 16:56:44

iPhone 字符處理 視圖

2024-08-28 17:55:43

HarmonyOS

2020-11-05 10:05:25

App

2020-11-10 11:58:17

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

2022-07-15 12:58:02

鴻蒙攜程華為
點(diǎn)贊
收藏

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

日本精品www| 国产精品手机在线| 538精品在线视频| 国产图片一区| 91久久一区二区| 国产日本欧美在线| 日本人妻熟妇久久久久久| 国产精品久久久亚洲一区| 在线视频日本亚洲性| 午夜性福利视频| 香蕉成人av| 一区二区三区四区激情| 日本10禁啪啪无遮挡免费一区二区| 在线视频免费观看一区| 亚洲人人精品| 久久久久北条麻妃免费看| theav精尽人亡av| 成人国产精品久久| 日本道精品一区二区三区| 六月婷婷激情综合| 麻豆系列在线观看| 久久人人97超碰com| 成人av免费电影| 亚洲网站免费观看| 欧美专区18| 992tv成人免费影院| 国产第一页浮力| 狠狠色丁香婷婷综合影院| 亚洲精品一区二区三区蜜桃下载 | 久久国产精品区| 91成人精品网站| 国产一级特黄a高潮片| 亚洲a一区二区三区| 一区二区三区美女xx视频| 少妇户外露出[11p]| 亚洲一区二区三区在线免费| 欧美精品乱码久久久久久按摩| 欧美黄色一级片视频| 午夜不卡影院| 欧美日韩午夜激情| 欧美乱大交xxxxx潮喷l头像| 日本在线观看大片免费视频| 亚洲乱码中文字幕| 日本一道在线观看| 国产成人l区| 亚洲色图清纯唯美| 中文字幕一区二区三区乱码| 欧美精品hd| 亚洲欧洲美洲综合色网| 亚洲不卡1区| 欧美新色视频| 久久久久久麻豆| 欧美专区一二三| 国产黄在线播放| 国产日韩欧美不卡在线| 日韩精品av一区二区三区| 免费在线黄色网址| 国产日产欧产精品推荐色| 欧美黑人xxxxx| 国产在线一二三| 中文在线资源观看网站视频免费不卡| 亚洲国产午夜伦理片大全在线观看网站 | 草莓视频一区二区三区| 日韩精品影音先锋| 国产情侣久久久久aⅴ免费| avtt综合网| 日韩av在线网页| 久操视频免费看| 日韩大片在线播放| 久久久精品一区| 国产福利久久久| 宅男噜噜噜66国产日韩在线观看| 欧美一区二区三区……| 美女黄页在线观看| 国产毛片精品国产一区二区三区| 51国产成人精品午夜福中文下载| 黄色一级a毛片| 久久综合狠狠综合久久综合88 | 亚洲a在线视频| 欧美激情视频在线免费观看 欧美视频免费一| 手机av在线看| 在线观看视频免费一区二区三区| 久久男人资源视频| 亚洲图片在线视频| 久久精品国产精品亚洲综合| 91在线播放视频| 天堂中文在线看| 日本一区二区三区四区| 黑人巨茎大战欧美白妇| 乡村艳史在线观看| 欧美亚洲综合一区| 性猛交╳xxx乱大交| 秋霞影院一区二区三区| 一区二区三区视频在线| 久久久久久久麻豆| 中文精品视频| 国产综合色香蕉精品| 人人妻人人澡人人爽精品日本| 久久女同互慰一区二区三区| 男女啪啪的视频| 中文在线а√在线8| 欧美肥胖老妇做爰| 欧美一级片黄色| 久久一区二区三区喷水| 久久久久中文字幕| 一区二区视频网站| av成人免费在线观看| 亚洲欧美影院| 特黄毛片在线观看| 欧美一区二区三区视频免费播放 | 国内精品偷拍视频| 久久久久成人黄色影片| 欧美交换配乱吟粗大25p| 欧美艳星kaydenkross| 日韩一区二区三区在线| 中文字幕一区二区三区人妻电影| 中文字幕一区二区三区欧美日韩 | 中文字幕综合在线| 日韩人妻无码一区二区三区99| 美女性感视频久久| 麻豆91蜜桃| 国产三线在线| 3d动漫精品啪啪1区2区免费| 国产精品一二三区在线观看| 99视频在线精品国自产拍免费观看| 亚洲a级在线观看| 91福利在线视频| 日韩欧美在线播放| av黄色一级片| 激情偷拍久久| 91欧美日韩一区| 成人无遮挡免费网站视频在线观看| 91国产精品成人| 一道本在线观看| 久久高清一区| 久久精品人成| 热色播在线视频| 日韩电视剧免费观看网站| 国产小视频在线观看免费| 国产成人h网站| 69精品丰满人妻无码视频a片| 国产精品麻豆| 久久综合伊人77777尤物| 国产一区二区女内射| 中文字幕免费不卡| 中文字幕在线导航| 欧美午夜精品一区二区三区电影| 日韩av成人在线观看| 国产精品影院在线| 在线视频你懂得一区二区三区| 国产女主播喷水高潮网红在线| 国产精品久久久久久久久久妞妞| 激情欧美一区二区三区中文字幕| 成人国产电影在线观看| 日韩国产高清视频在线| 精品国产xxx| 国产目拍亚洲精品99久久精品| 成年人网站大全| 日韩精品欧美| 91久久精品美女高潮| 在线免费观看污| 亚洲精品一区二区三区影院| 国产精品美女久久久久av爽| 久久久综合精品| 手机在线看福利| 天天操综合网| 国产精品一区二区三区在线观| 色偷偷偷在线视频播放| 国产亚洲欧美aaaa| 国产老妇伦国产熟女老妇视频| 亚洲码国产岛国毛片在线| 成人免费看片载| 欧美亚洲网站| 亚洲国产午夜伦理片大全在线观看网站 | 波多野在线播放| 久久er精品视频| 波多野结衣av一区二区全免费观看 | 免费亚洲网站| 亚洲一区二区三区乱码| 这里视频有精品| 日本欧美在线视频| 免费黄色网址在线观看| 精品处破学生在线二十三| 性色av免费观看| 亚洲欧美色一区| 中文字幕 亚洲一区| 奇米精品一区二区三区在线观看| 免费看污污视频| 中日韩免视频上线全都免费| 国产欧美日韩高清| 国产黄大片在线观看| 一区二区三欧美| 免费观看a视频| 欧美日韩在线综合| 国产精品999在线观看| 中文子幕无线码一区tr| 中文字幕在线视频播放| 美女www一区二区| 免费无码毛片一区二三区| 成人网18免费网站| 久久精品人成| 日韩精品免费视频一区二区三区| 国产精品高精视频免费| 久久一卡二卡| 中国china体内裑精亚洲片| 亚洲精品一级片| 欧美视频一区二区在线观看| 日韩视频免费观看高清| 亚洲色欲色欲www| 无码人妻aⅴ一区二区三区69岛| 成人夜色视频网站在线观看| 午夜宅男在线视频| 香蕉国产精品偷在线观看不卡| 色爽爽爽爽爽爽爽爽| 精品日产免费二区日产免费二区| 国产欧美日韩综合精品二区| 国产精选久久| 国产日韩欧美在线视频观看| 嗯~啊~轻一点视频日本在线观看| 久久精品精品电影网| 国产高清免费av在线| 日韩成人xxxx| 韩国av免费在线| 欧美一区二区在线观看| 亚洲无码精品国产| 欧美性猛交xxxx免费看久久久| 国产系列精品av| 亚洲精品第1页| 侵犯稚嫩小箩莉h文系列小说| 日本一区二区在线不卡| 性欧美精品中出| 久久亚洲精品国产精品紫薇| 50一60岁老妇女毛片| 成人污污视频在线观看| 超级砰砰砰97免费观看最新一期 | 久久精品午夜| 久久综合九色综合88i| 亚洲九九精品| 国产在线精品91| 99精品免费| 欧美一区二区中文字幕| 亚洲美女少妇无套啪啪呻吟| 大陆av在线播放| 亚洲国产专区| 国产美女网站在线观看| 国产日韩综合| www黄色日本| 亚洲综合激情| 黑鬼大战白妞高潮喷白浆| 天堂一区二区在线| 日本一极黄色片| 蜜桃视频免费观看一区| 欧美成人福利在线观看| 精品一区免费av| 无套内谢丰满少妇中文字幕| 国产精品18久久久| 深夜视频在线观看| 91美女精品福利| 一级黄色录像毛片| 日韩一区欧美一区| 青青草在线观看视频| 亚洲电影在线播放| 国产美女激情视频| 欧美视频精品在线| 国产欧美久久久精品免费| 欧美tk丨vk视频| 日韩毛片在线一区二区毛片| 亚洲新中文字幕| 男人资源在线播放| 欧美—级a级欧美特级ar全黄| 成人一级福利| 国产日韩视频在线观看| 综合伊人久久| 日韩av一级大片| 一本一道久久综合狠狠老| 精品国产一区二区三区无码| 男人的天堂亚洲在线| 午夜免费福利视频在线观看| 国产.欧美.日韩| 国产美女免费无遮挡| 中文字幕日韩av资源站| 日韩xxx高潮hd| 欧美亚日韩国产aⅴ精品中极品| 国产乱码精品一区二区三区精东| 亚洲精品在线观| 亚洲1卡2卡3卡4卡乱码精品| 欧美精品999| 日本精品另类| 国产精成人品localhost| 欧美极品在线观看| 国产91在线亚洲| 日韩高清一区二区| 911亚洲精选| 国产精品卡一卡二| 91蜜桃视频在线观看| 欧美日韩国产高清一区| 人人妻人人澡人人爽精品日本| 自拍偷拍亚洲精品| 国产在线88av| 亚洲精品日韩av| 精品视频99| 人人干视频在线| 韩国av一区二区三区| av女人的天堂| 午夜伊人狠狠久久| 国产三区在线播放| 国产亚洲aⅴaaaaaa毛片| 51漫画成人app入口| 91精品久久久久久久久青青| 免费久久精品| 91成人在线观看喷潮教学| 国产成人亚洲综合a∨猫咪 | 亚洲一区二区精品久久av| 国产成人自拍偷拍| 日韩av在线精品| 免费看电影在线| 92裸体在线视频网站| 成人嘿咻视频免费看| 欧美色图色综合| 成人av网站在线观看免费| 日本一二三区在线观看| 欧美调教femdomvk| 国产一二三在线观看| 欧美在线免费观看| 国产欧美一区二区三区米奇| 国产精品久久久影院| 美女看a上一区| 美国黑人一级大黄| 在线免费不卡电影| 你懂的在线看| 日韩免费在线播放| 妖精视频一区二区三区免费观看| 一本久道高清无码视频| 国产精品123| 五月天丁香激情| 日韩一级黄色大片| 色呦呦在线免费观看| 7777奇米亚洲综合久久| 中文字幕午夜精品一区二区三区| 亚洲自拍第三页| 亚洲女同ⅹxx女同tv| 99久久精品国产色欲| 久久亚洲精品视频| 国产一区二区三区视频在线| 日韩视频在线免费播放| 国内一区二区视频| 欧美日韩在线视频免费| 欧美电视剧在线看免费| 欧洲在线视频| 国产综合18久久久久久| 日韩一级网站| 国产美女精品久久| 欧洲中文字幕精品| av在线收看| 91热精品视频| 欧美特黄一区| 久久午夜夜伦鲁鲁片| 91高清在线观看| 好吊日视频在线观看| 成人精品一二区| 一级成人国产| 欧美激情 一区| 欧美一区二区三区免费观看视频| 亚洲综合影视| 精品一区二区不卡| 天堂久久一区二区三区| www.com.av| 精品人在线二区三区| 性国裸体高清亚洲| 亚洲精品成人久久久998| 极品销魂美女一区二区三区| 免费网站看av| 亚洲欧美日韩成人| 曰本一区二区| 国产精品成人久久电影| 国产三级精品三级在线专区| 国产同性人妖ts口直男| 91国自产精品中文字幕亚洲| 国产一区二区三区日韩精品| 特黄视频免费观看| 亚洲一区二区三区三| 精品视频二区| 91亚洲精品丁香在线观看| 美女网站久久| 欧美xxxx黑人xyx性爽| 亚洲精品自产拍| 99精品视频在线免费播放| 日本国产在线播放| 国产精品电影院| 头脑特工队2在线播放| 成人激情视频免费在线| 一本久久知道综合久久| 久久国产波多野结衣| 日韩精品一二三四区| 国产精品一区二区三区www| 黄色片久久久久| 亚洲在线观看免费| 电影在线高清| 精品欧美一区二区三区久久久| 精品一区二区三区免费观看|