版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
HarmonyOS簡介了解鴻蒙鴻蒙發(fā)展歷史了解OpenHarmonyOpenHarmony是由開放原子開源基金會(OpenAtomFoundation)孵化及運營的開源項目,目標(biāo)是面向全場景、全連接、全智能時代,基于開源的方式,搭建一個智能終端設(shè)備操作系統(tǒng)的框架和平臺,促進萬物互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。OpenHarmony提供一個智能終端設(shè)備的操作系統(tǒng)底座框架和平臺,參與者只要遵循開源協(xié)議和法律,就可以持續(xù)為OpenHarmony開源項目貢獻代碼,共同促進萬物全場景、全連接、全智能的互聯(lián)產(chǎn)業(yè)的繁榮發(fā)展。項目地址為:/openharmony。
了解HarmonyOSHarmonyOS就是鴻蒙操作系統(tǒng),是商用版本,是華為基于OpenHarmony、AOSP(AndroidOpenSourceProject)等開源項目推出的新一代智能終端操作系統(tǒng),HarmonyOS手機和平板也能運行Android應(yīng)用,是因為HarmonyOS遵循了Android的AOSP。HarmonyOS系統(tǒng)架構(gòu)HarmonyOS整體遵從分層設(shè)計,從下向上依次為:內(nèi)核層、系統(tǒng)服務(wù)層、框架層和應(yīng)用層。1+8+N全場景應(yīng)用HarmonyOS是一個支持多設(shè)備的操作系統(tǒng),“一生萬物,萬物歸一”。HarmonyOS以手機為核心,將生活場景中的各類終端進行能力整合,構(gòu)建1+8+N全場景應(yīng)用,實現(xiàn)不同終端設(shè)備之間的快速連接、服務(wù)流轉(zhuǎn)、能力互助、資源共享,匹配合適的設(shè)備、提供流暢的全場景體驗。開發(fā)前準(zhǔn)備了解DevEcoStudioHUAWEIDevEcoStudio(簡稱DevEcoStudio)是面向華為終端全場景多設(shè)備的一站式集成開發(fā)環(huán)境(IDE),除了創(chuàng)建工程、開發(fā)、編譯、調(diào)試、發(fā)布等功能外,DevEcoStudio還可以支持多設(shè)備開發(fā),實時預(yù)覽器/模擬器等。DevEcoStudio支持多設(shè)備預(yù)覽、模擬器運行、真機運行三種方式。開發(fā)者可以在DevEcoStudio中使用遠(yuǎn)程模擬器(RemoteEmulator)運行應(yīng)用,也可以下載本地模擬器(LocalEmulator)運行應(yīng)用,開發(fā)者還可以使用超級終端模擬器(SuperDevice)調(diào)測跨設(shè)備的應(yīng)用。搭建開發(fā)環(huán)境流程DevEcoStudio支持Windows系統(tǒng)和macOS系統(tǒng),在開發(fā)HarmonyOS應(yīng)用/服務(wù)前,需要配置HarmonyOS應(yīng)用/服務(wù)的開發(fā)環(huán)境。Node.js與npmNode.js是什么?Node.js是一個基于GoogleV8引擎開發(fā)的C++程序Javascript運行環(huán)境(runtime),具有事件驅(qū)動、非阻塞I/O的特點。Node.js的優(yōu)點響應(yīng)速度快易于擴展適合在分布式設(shè)備上運行數(shù)據(jù)密集型的實時應(yīng)用npm
是
NodePackageManager的縮寫,意思是Node.js的包管理系統(tǒng)。安裝了Node.js后,自動會安裝npm。認(rèn)識DevEcoStudio界面認(rèn)識TypeScript01020304JavaScript和TypeScript概述TypeScript程序的編譯與運行TypeScript語法說明TypeScript變量聲明JavaScript與ES6JavaScript語言(簡稱“JS”)解釋型腳本語言廣泛應(yīng)用在Web端、移動端、小程序端、桌面端、服務(wù)端動態(tài)類型語言ES6(全稱“ECMAScript6.0”)JavaScript的一個版本標(biāo)準(zhǔn)2015年6月,ES6版本正式成為國際標(biāo)準(zhǔn)TypeScript簡介TypeScript(簡稱“TS”)微軟開發(fā)的一種開放源代碼語言JS的一個超集提供編譯時的靜態(tài)類型檢查ArkTS鴻蒙生態(tài)的一種應(yīng)用開發(fā)語言TS的一個超集擴展了聲明式UI、狀態(tài)管理等相應(yīng)的能力JS、TS、ArkTS三者關(guān)系TypeScript程序的編譯和運行編譯使用tsc命令將TS文件.ts編譯成JS文件例如:tsctest.ts運行使用node命令執(zhí)行編譯生成的JS文件例如:nodetest.jsTypeScript語法說明TypeScript是面向?qū)ο笳Z言,與C?;騄ava類似。相同之處:可以使用數(shù)據(jù)類型定義變量具有函數(shù)、類、接口、枚舉等類型。不同之處:TS結(jié)束語句可以使用分號也可以不使用分號TS字符串可以使用單引號也可以使用雙引號示例:TypeScript變量聲明TypeScript變量的命名規(guī)則:變量名稱可以包含數(shù)字和字母;除了下劃線_和美元$符號外,不能包含其他特殊字符,包括空格;變量名不能以數(shù)字開頭;不能是關(guān)鍵字,例如let、const等示例:正確的變量命名:message、$name、_init錯誤的變量命名:123、123message、user/name!fruit1amilk%$age_value思考一下:以下哪些變量命名是正確的:TypeScript變量聲明聲明變量使用的關(guān)鍵字:var或let(建議使用let)TypeScript聲明變量方式的幾種情況:let[變量名]:[類型]=值;
使用示例:letuname:string="hello";let[變量名]:[類型];
使用示例:letuname:string;let[變量名]=值;
使用示例:letuname="hello";let[變量名];
使用示例:letuname;TypeScript變量聲明TypeScript在編譯時進行類型檢查,遵循強類型,如果將不同的類型賦值給變量會編譯錯誤。示例代碼如下://聲明變量val,并賦初始值let
val
=
123;//使用變量val
=
456
;
//正確console.log(val);//在控制臺打印出變量val的值val
=
'deg';
//編譯錯誤TypeScript常用基礎(chǔ)數(shù)據(jù)類型TypeScript的常用基礎(chǔ)數(shù)據(jù)類型TypeScript的常用基礎(chǔ)數(shù)據(jù)類型有:any(任意類型)number(數(shù)字類型)string(字符串類型)boolean(布爾類型)數(shù)組類型tuple(元組類型)enum(枚舉類型)void類型null和undefined類型never類型TypeScript的常用基礎(chǔ)數(shù)據(jù)類型any類型聲明為any的變量可以賦予任意類型的值示例代碼如下:let
data:
any;
//聲明變量data為any類型data
=
"hello";
//將字符串賦值給dataconsole.log(typeof(data));
//輸出data的類型為stringTypeScript的常用基礎(chǔ)數(shù)據(jù)類型number類型number代表數(shù)字類型,是浮點值,它可以用來表示整數(shù)和小數(shù)。示例代碼如下:let
data:
number;
//聲明變量data為數(shù)字類型data
=
222;console.log(typeof(data));
//numberTypeScript的常用基礎(chǔ)數(shù)據(jù)類型string類型string代表字符串類型,使用單引號(‘)或雙引號(“)來表示字符串類型,反引號(`)來定義多行文本和內(nèi)嵌表達式,反引號中的${變量名}會替換成相應(yīng)的變量的值。示例代碼如下:let
data1:
string
=
"hello";
//聲明變量data為字符串類型let
data2
=
`${data1}`;
//使用反引號,${變量名}會獲取到相應(yīng)變量的值console.log(data2);
//hello
TypeScript的常用基礎(chǔ)數(shù)據(jù)類型boolean類型boolean代表布爾類型,表示邏輯值:true和false。示例代碼如下:let
data:
boolean
=
true;
//聲明變量data為布爾類型TypeScript的常用基礎(chǔ)數(shù)據(jù)類型數(shù)組類型數(shù)組里放的都是類型相同的數(shù)據(jù)。有兩種方式可以定義數(shù)組。第一種,可以在元素類型后面接上[]。第二種使用數(shù)組泛型,Array<元素類型>。示例代碼如下://聲明變量datas為數(shù)組類型,數(shù)組中都是數(shù)字,聲明數(shù)組時同時初始化值let
datas:
number[]
=
[4,8,7];//聲明變量temps為數(shù)組泛型,數(shù)組中的數(shù)據(jù)類型是numberlet
temps:
Array<string>
=
["hi","ArkTS"];console.log(temps[1]);
//獲取temps數(shù)組的第2個成員的值,值為ArkTSTypeScript的常用基礎(chǔ)數(shù)據(jù)類型元組類型元組類型允許表示一個已知元素數(shù)量和類型的數(shù)組,各元素的類型不必相同,初始化值時對應(yīng)位置的數(shù)據(jù)類型要相同。示例代碼如下:let
temps:
[number,string,boolean]
=
[2,'Hi',false];
//個數(shù)、類型、順序要一致temps
=
["UI",'HarmonyOS',true];//編譯報錯:不能將類型“string”分配給類型“number”TypeScript的常用基礎(chǔ)數(shù)據(jù)類型枚舉類型使用枚舉我們可以定義一些帶名字的常量。使用枚舉可以清晰地表達意圖或創(chuàng)建一組有區(qū)別的用例。TypeScript支持?jǐn)?shù)字的和基于字符串的枚舉。示例代碼如下:enum
DeviceType{
ZigBee,
LoRa}console.log(DeviceType.LoRa+"");//從枚舉類中取LoRa成員的值,值為1TypeScript的常用基礎(chǔ)數(shù)據(jù)類型void類型void類型一般用于聲明函數(shù)返回值類型它表示沒有任何類型。當(dāng)一個函數(shù)沒有返回值時,你通常會見到其返回值類型是void。(void用來聲明的變量沒多大作用)。示例代碼如下:function
testFun():
void{
//函數(shù)沒有返回值
return
123;
//編譯報錯:不能將類型“number”分配給類型“void”}
TypeScript的常用基礎(chǔ)數(shù)據(jù)類型undefined與null類型undefined與null用作變量類型聲明用處不大,undefined一般用于變量未初始化時的默認(rèn)值,null變量用于給變量置空時使用。示例代碼如下:
let
cat;
//聲明變量cat,但沒有初始化
console.log(cat+"");
//undefined
cat
=
null;
if(null
==
cat)
{
console.log(cat+"");
//null
}TypeScript的常用基礎(chǔ)數(shù)據(jù)類型never類型never類型是其他類型的子類型,表示的是那些永不存在的值的類型。用在函數(shù)中,用來限制函數(shù)永遠(yuǎn)也執(zhí)行不到返回值的地方。示例代碼如下:function
testFun():
never{
//正確
while(true)
{
//…}
//while循環(huán)為恒真,永遠(yuǎn)也不會執(zhí)行到這里
}TypeScript的常用基礎(chǔ)數(shù)據(jù)類型聯(lián)合類型聯(lián)合類型使用管道符號(|)可以將變量聲明為多種類型,例如string|number表示字符串或者數(shù)值類型。示例代碼如下:let
x:
string|number;x
=
12;
//正確x
=
"haha"
;
//正確x
=
true;
//編譯報錯TypeScript函數(shù)010203060504函數(shù)的定義與調(diào)用函數(shù)的返回值可選參數(shù)箭頭函數(shù)匿名函數(shù)默認(rèn)參數(shù)07函數(shù)聲明函數(shù)的定義與調(diào)用函數(shù)的定義使用function關(guān)鍵字修飾:函數(shù)名必須形參個數(shù)可選形參對應(yīng)的類型可選(形參沒有設(shè)置類型時,使用any類型)形參之間使用逗號隔開返回值類型可選(沒有指定返回值類型時,返回值類型由返回值內(nèi)容確定)function函數(shù)名(形參1:類型1,形參2:類型2…):返回值類型{
//要執(zhí)行的代碼}函數(shù)的定義與調(diào)用函數(shù)的定義示例:functiontest()
{
console.log("hello")
//要執(zhí)行的代碼塊}函數(shù)的調(diào)用使用函數(shù)名()的形式調(diào)用函數(shù),若定義的函數(shù)有形參,則調(diào)用時要傳入實參。test()函數(shù)的返回值指定返回值類型時,使用return返回該類型的返回值使用void修飾返回值類型時,表示該函數(shù)沒有返回值,不能使用return//定義函數(shù),該函數(shù)的返回值類型為stringfunction
test100():
string{
return
"hi"
//返回一個string類型的結(jié)果}let
res_fun1:
string
=
test100();//調(diào)用函數(shù)并接收函數(shù)的返回值//定義函數(shù),該函數(shù)沒有返回值function
test200():
void{
return
"hi"
//編譯報錯}函數(shù)的返回值//定義函數(shù),該函數(shù)的返回值未指明類型或void,則函數(shù)的返回值類型依情況而定function
test300(){
return
123
//返回一個number類型的值}let
res300:
number
=
test300();
//調(diào)用函數(shù)并接收函數(shù)的返回值沒有返回值類型修飾時,可以返回任意類型的值,也可以不返回值。(函數(shù)的返回值類型由返回值決定)可選參數(shù)在TypeScript函數(shù)里,如果定義了參數(shù),則調(diào)用函數(shù)時必須傳入指定類型的參數(shù),除非將這些參數(shù)設(shè)置為可選??蛇x參數(shù)使用問號(?)標(biāo)識可選參數(shù)必須跟在必須參數(shù)后面function
test(x:
string,
y?:
number)
//聲明一個有可選參數(shù)的函數(shù){
//要執(zhí)行的代碼
}test("hi");
//調(diào)用函數(shù),正確默認(rèn)參數(shù)當(dāng)定義了有參數(shù)的函數(shù),但是在調(diào)用函數(shù)的時候,如果不想傳入該參數(shù)的值,則使用默認(rèn)參數(shù)。function
test(x:
string,
y:
number
=
200)
//聲明一個有默認(rèn)值參數(shù)的函數(shù){
console.log(x+"
"+y);}test("hi");
//調(diào)用函數(shù),正確,y的值為200注意:同一個參數(shù)不能同時設(shè)置為可選和默認(rèn)。匿名函數(shù)匿名函數(shù)是一個沒有函數(shù)名的函數(shù),在程序運行時動態(tài)聲明,除了沒有函數(shù)名外,其他的與普通函數(shù)一樣。將匿名函數(shù)賦值給一個變量,這種表達式就是匿名函數(shù)表達式。let
res
=
function(a:
number,b:
number){
//定義一個帶參數(shù)的匿名函數(shù)
return
a+b;}console.log(res(4,5)+"");
//調(diào)用函數(shù),輸出:9匿名函數(shù)在匿名函數(shù)后使用()就是匿名函數(shù)的自調(diào)用。(function(){
console.log("我是自調(diào)用函數(shù)");})()
//匿名函數(shù)的自調(diào)用,輸出:我是自調(diào)用函數(shù)箭頭函數(shù)匿名函數(shù)的另一種簡潔寫法就是箭頭函數(shù)的形式(使用=>定義函數(shù),也稱作lambda表達式)。/箭頭函數(shù):省略function關(guān)鍵字和函數(shù)名,使用=>let
res1
=
(x:number,y:
number)=>{
let
a
=
x+y;
console.log(a+"");}//定義有返回值的箭頭函數(shù),并且函數(shù)中有多行執(zhí)行語句let
res2
=
(x:number,y:
number):
string=>{
let
a
=
x+y;
console.log(a+"");
return
"ok"}//當(dāng)函數(shù)的執(zhí)行部分只有一行語句時,{}可以省略let
res3
=
(x:number,y:
number)=>x+y//當(dāng)函數(shù)只有1個參數(shù),()可以省略let
res4
=
x=>x+100;//當(dāng)函數(shù)無參時,可以使用空括號:let
res5
=
()=>
100;重點函數(shù)的聲明函數(shù)聲明可以限定函數(shù)的名稱、參數(shù)類型和個數(shù)、函數(shù)的返回值等。//聲明函數(shù)myFun,有兩個參數(shù),返回值類型為string,聲明時同時賦值let
myFun:(x:number,y:string)=>string
=
(a:number,b:string)=>{return
b}//調(diào)用函數(shù)myFunmyFun(100,'HarmonyOS')TypeScript面向?qū)ο缶幊?10203面向?qū)ο缶幊谈攀鯰ypeScript中類的定義和對象的使用TypeScript中接口的聲明和使用面向?qū)ο缶幊蹋∣OP)概述面向?qū)ο?ObjectOriented)簡稱OO,它是一種編程思維,用于指導(dǎo)我們?nèi)绾螒?yīng)對各種復(fù)雜的開發(fā)場景。這里說的對象(Object),意思就是事物,在面向?qū)ο蟮乃季S中,它將一切都看作是對象,并以對象為切入點去思考問題。使用面向?qū)ο笏枷刖幊叹头Q作面向?qū)ο缶幊?ObjectOrientedProgramming),簡稱OOP。面向?qū)ο蟮南嚓P(guān)概念:類對象接口面向?qū)ο笕筇卣鳎悍庋b、繼承和多態(tài)...TypeScript中類的定義與對象的使用定義類使用關(guān)鍵字class類中可以有屬性和方法類中的屬性和方法默認(rèn)都是public公有的屬性可以定義時初始化也可以通過構(gòu)造方法初始化class
Animal
{
private
name:
string
=
'小動物';
//屬性,可以定義時初始化
private
age:
number;
//構(gòu)造方法給屬性做初始化
public
constructor(name:
string,
age:
number)
{
this.name
=
name;
this.age
=
age;
}
//獲取屬性name的值
public
getName()
{
return
this.name;
}
//設(shè)置屬性name的值
public
setName(name:
string)
{
this.name
=
name;
}
//age的get()和set()方法省略
//普通方法
public
info():
string
{
return
"Animal
info()
is
running...";
}}TypeScript中類的定義與對象的使用創(chuàng)建對象使用關(guān)鍵字newlet
animal
:Animal
=
new
Animal("小貓",2);console.log(animal.getName());//小貓TypeScript中類的定義與對象的使用繼承使用關(guān)鍵字extends子類繼承父類的屬性和方法子類可以重寫父類繼承下來的方法子類可以新增屬性和方法class
Cat
extends
Animal{
//增加子類的方法略
//重寫父類的info()方法
info():
string
{
return
"abc
cat
info";
}}TypeScript中類的定義與對象的使用多態(tài)多態(tài)是指由繼承而產(chǎn)生了相關(guān)的不同的類,對同一個方法可以有不同的響應(yīng)。多態(tài)是有前提的,在子類繼承父類并重寫父類的方法后,使用父類引用指向子類對象,訪問的是子類經(jīng)過重寫的方法,從而呈現(xiàn)子類的狀態(tài)。let
animal2:Animal
=
new
Cat("大貓",3);console.log(());//訪問的是Cat類經(jīng)過重寫的方法info()TypeScript中接口的聲明與使用接口是特殊的類,使用interface修飾,接口用來限定屬性和規(guī)定標(biāo)準(zhǔn)行為。聲明接口接口中的屬性不能初始化接口中的方法沒有方法體接口中的屬性和方法默認(rèn)都是public公有的interface
IAnimal
{
name:
string;
//定義接口的一個屬性,不能初始化
//sayHi是函數(shù)名,該函數(shù)沒有參數(shù),返回值類型為string
sayHi:
()
=>
string;
//定義接口的抽象方法,不能有方法體}TypeScript中接口的聲明與使用實現(xiàn)接口使用關(guān)鍵字implementsclass
Pig
implements
IAnimal
{
name:
string='小豬'
//可以初始化
sayHi():
string
{
//實現(xiàn)接口的方法
return
`Hi,${this.name}`;
}}TypeScript中接口的聲明與使用接口多態(tài)當(dāng)類實現(xiàn)了接口中的方法后,接口的引用指向?qū)崿F(xiàn)類對象,訪問的是實現(xiàn)類的方法,從而呈現(xiàn)多種狀態(tài)。let
animal:
IAnimal
=
new
Pig();//接口的引用指向?qū)崿F(xiàn)類的對象console.log(animal.sayHi());
//Hi,小豬認(rèn)識ArkTS工程010203應(yīng)用程序包結(jié)構(gòu)相關(guān)的基本概念A(yù)rkTS工程目錄結(jié)構(gòu)ArkTS工程的配置文件04ArkTS工程的資源管理應(yīng)用程序包結(jié)構(gòu)相關(guān)的基本概念一個應(yīng)用包含一個或者多個Module;Module分為“Ability”和“Library”兩種類型;“Ability”類型的Module對應(yīng)于編譯后的HAP(HarmonyAbilityPackage);“Library”類型的Module對應(yīng)于HAR(HarmonyAbilityResources)包,即編譯后的.tgz文件?!癆bility”類型的Module的HAP包可分為Entry和Feature兩種類型。Entry類型的HAP:是應(yīng)用的主模塊;Feature類型的HAP:是應(yīng)用的動態(tài)特性模塊每個HarmonyOS應(yīng)用可以包含多個.hap文件,一個應(yīng)用中的.hap文件合在一起稱為一個Bundle,而bundleName就是應(yīng)用的唯一標(biāo)識(請參見app.json5配置文件中的bundleName標(biāo)簽)ArkTS工程目錄結(jié)構(gòu)ArkTS工程的配置文件在基于Stage模型開發(fā)的應(yīng)用項目代碼下,都存在app.json5及module.json5兩個配置文件。app.json5應(yīng)用的全局配置信息,包含應(yīng)用的包名、開發(fā)廠商、版本號等基本信息。特定設(shè)備類型的配置信息。ArkTS工程的配置文件module.json5:Module的基本配置信息,例如Module名稱、類型、描述、支持的設(shè)備類型等基本信息。應(yīng)用組件信息,包含Ability組件和ExtensionAbility組件的描述信息。應(yīng)用訪問系統(tǒng)或其他應(yīng)用受保護部分所需的權(quán)限信息。ArkTS工程的資源管理HarmonyOS資源分為兩類:應(yīng)用資源:借助資源文件能力,開發(fā)者在應(yīng)用中自定義資源,自行管理這些資源在不同的設(shè)備或配置中的表現(xiàn)。系統(tǒng)資源:開發(fā)者直接使用系統(tǒng)預(yù)置的資源定義(即分層參數(shù),同一資源ID在設(shè)備類型、深淺色等不同配置下有不同的取值)。ArkTS工程的資源管理應(yīng)用資源目錄應(yīng)用開發(fā)中使用的各類資源文件,需要放入特定子目錄中存儲管理。在stage模型中,多模塊module共有的資源文件放到AppScope下的resources目錄。模塊獨有的資源可以放在該模塊的resources目錄下。resources目錄包括三大類目錄:base目錄限定詞目錄rawfile目錄ArkTS工程的資源管理創(chuàng)建應(yīng)用資源文件應(yīng)用已經(jīng)提供了一些資源文件,例如用來存放字符串的資源文件string.json,若還想創(chuàng)建其他的資源文件,例如布爾資源文件,則需要開發(fā)者自己創(chuàng)建。在資源目錄的右鍵菜單選擇“New>XXXResourceFile”,即可創(chuàng)建對應(yīng)資源組目錄的資源文件。例如,在element目錄下可新建ElementResourceFile。如右圖在element目錄下創(chuàng)建一個布爾資源文件,一般文件名命名與根元素同名為boolean。ArkTS工程的資源管理訪問應(yīng)用資源在工程中,通過"$r('')"的形式引用應(yīng)用資源。app代表是應(yīng)用內(nèi)resources目錄中定義的資源;type代表資源類型(或資源的存放位置),可以取“color”、“float”、“string”、“plural”、“media”;name代表資源命名,由開發(fā)者定義資源時確定。例如:$r(‘a(chǎn)pp.string.string_hello’)表示引用字符串資源string_hello,具體是base還是相應(yīng)限定詞目錄下的視當(dāng)前設(shè)備的語言、設(shè)備類型等情況。另外:引用rawfile下資源時使用"$rawfile('filename')"的形式,filename需要表示為rawfile目錄下的文件相對路徑,文件名需要包含后綴,路徑開頭不可以以"/"開頭。例如$rawfile(‘test.png’)表示引用rawfile目錄下圖片。ArkTS工程的資源管理訪問系統(tǒng)資源系統(tǒng)資源包含色彩、圓角、字體、間距、字符串及圖片等。通過使用系統(tǒng)資源,不同的開發(fā)者可以開發(fā)出具有相同視覺風(fēng)格的應(yīng)用。開發(fā)者可以通過“$r('sys.type.resource_id')”的形式引用系統(tǒng)資源。sys代表是系統(tǒng)資源;type代表資源類型,可以取“color”、“float”、“string”、“media”;resource_id代表資源id。例如:$r('sys.color.ohos_id_color_emphasize')認(rèn)識ArkTS聲明式開發(fā)010203ArkTS簡介ArkUI框架ArkTS聲明式開發(fā)范式的基本組成04ArkTS中的尺寸單位05ArkTS中組件的公共樣式ArkTS簡介ArkTS是HarmonyOS優(yōu)選的主力應(yīng)用開發(fā)語言。ArkTS基于TypeScript(簡稱TS)語言擴展而來,是TS的超集。ArkTS繼承了TS的所有特征ArkTS在TS的基礎(chǔ)上擴展了聲明式UI能力,當(dāng)前擴展的聲明式UI能力包括如下特征:基本UI描述狀態(tài)管理動態(tài)構(gòu)建UI元素渲染控制使用限制與擴展ArkUI框架ArkUI是基于ArkTS的UI框架,基于ArkTS提供的擴展語法,如下圖所示。ArkTS聲明式開發(fā)范式的基本組成ArkTS聲明式開發(fā)范式的基本組成:裝飾器自定義組件UI描述內(nèi)置組件屬性方法事件方法ArkTS中的尺寸單位ArkTS提供了4種像素單位,分別是px、vp、fp和lpx,框架采用vp為基準(zhǔn)數(shù)據(jù)單位。px:屏幕物理像素單位。vp:屏幕密度相關(guān)像素,根據(jù)屏幕像素密度轉(zhuǎn)換為屏幕物理像素fp:字體像素,與vp類似適用屏幕密度變化lpx:視窗邏輯像素單位在設(shè)置組件和容器寬高的字體大小使用固定值時,使用number值不需要用單位,ArkTS會默認(rèn)給單位。例如:width(200)fontSize(50)ArkTS還可以使用百分比字符串來設(shè)置組件或布局的寬高。例如:width(‘100%’)表示寬度與父容器寬度相等。ArkTS中組件的公共樣式公共樣式:寬高(width/height/size)寬高比(aspectRatio)邊距(padding/margin)權(quán)重(layoutWeight)...示例:組件的寬高設(shè)置Column()
{
Text('你好').width(100).height(120)
.fontSize("50px")
//設(shè)置Text文字顯示組件的字體大小為50px
}.width('100%')
//設(shè)置Column的寬為100%,占滿屏幕寬度ArkTS中組件的公共樣式內(nèi)外邊距Text()…
.margin({bottom:30})//設(shè)置底部外邊距,底部距離下一個組件30Text()…//.padding(20)
//設(shè)置相同的邊距值
.padding({left:
20,
top:
30,
right:
40,
bottom:
50})//設(shè)置不同的邊距值示例:設(shè)置組件的內(nèi)外邊距Row與Column組件的使用010203容器組件概述Column和Row組件介紹線性布局的權(quán)重設(shè)置容器組件概述容器組件是一種比較特殊的組件,它可以包含其他的組件,而且按照一定的規(guī)律布局。容器組件除了放置基礎(chǔ)組件外,也可以放置容器組件,通過多層布局的嵌套,可以布局出更豐富的頁面。ArkTS為我們提供了豐富的容器組件來布局頁面,例如使用Column和Row容器組件實現(xiàn)如下效果。Column和Row組件介紹線性布局容器概念Column和Row組件是ArkTS提供用來實現(xiàn)線性布局的容器組件。線性布局表示按照垂直方向或者水平方向排列子組件的容器。Column表示沿垂直方向布局的容器。Row表示沿水平方向布局的容器。Column和Row組件介紹主軸與交叉軸的概念在線性布局容器中,存在兩根軸,分別是主軸和交叉軸,這兩個軸始終是相互垂直的。不同的容器中主軸的方向不一樣的。主軸:在Column容器中的子組件是按照從上到下的垂直方向布局的,其主軸的方向是垂直方向;在Row容器中的組件是按照從左到右的水平方向布局的,其主軸的方向是水平方向。Column和Row組件介紹交叉軸:與主軸垂直相交的軸線,如果主軸是垂直方向,則交叉軸就是水平方向;如果主軸是水平方向,則交叉軸是垂直方向。Column和Row組件介紹主軸與交叉軸的對齊格式Column和Row容器默認(rèn)都在主軸和交叉軸上居中顯示子組件。同時,他們也提供屬性justifyContent和alignItems用來設(shè)置子組件在主軸和交叉軸的對齊格式。主軸方向的對齊格式(justifyContent)子組件在主軸方向上的對齊使用justifyContent屬性來設(shè)置,其參數(shù)類型是FlexAlign。FlexAlign定義了以下幾種類型:StartCenterEndSpaceBetweenSpaceAroundSpaceEvenlyColumn和Row組件介紹Column在主軸上的對齊格式:Row在主軸上的對齊格式:Column和Row組件介紹交叉軸方向的對齊(alignItems)子組件在交叉軸方向上的對齊方式使用alignItems屬性來設(shè)置。Column容器的主軸是垂直方向,交叉軸是水平方向,其參數(shù)類型為HorizontalAlign(水平對齊),HorizontalAlign定義了以下幾種類型:Start:設(shè)置子組件在水平方向上按照起始端對齊。Center(默認(rèn)值):設(shè)置子組件在水平方向上居中對齊。End:設(shè)置子組件在水平方向上按照末端對齊。Column和Row組件介紹Row容器的主軸是水平方向,交叉軸是垂直方向,其參數(shù)類型為VerticalAlign(垂直對齊),VerticalAlign定義了以下幾種類型:Top:設(shè)置子組件在垂直方向上居頂部對齊。Center(默認(rèn)值):設(shè)置子組件在豎直方向上居中對齊。Bottom:設(shè)置子組件在豎直方向上居底部對齊。線性布局的權(quán)重設(shè)置權(quán)重屬性表示一行或一列中的尺寸按照權(quán)重比進行分配,僅適用于線性布局組件下的子組件,如果同時設(shè)置了某一個方向上的尺寸和權(quán)重,此時子組件設(shè)置的尺寸不起作用?;A(chǔ)組件1組件概述組件(Component)是界面搭建與顯示的最小單位,
HarmonyOSArkUI聲明式開發(fā)范式為開發(fā)者提供了豐富多樣的UI組件。組件根據(jù)功能可以分為以下五大類:基礎(chǔ)組件、容器組件、媒體組件、繪制組件、畫布組件。其中基礎(chǔ)組件是視圖層的基本組成單元,包括Text、Image、TextInput、Button、LoadingProgress等。010203文本組件Text圖片組件Image空白填充組件Blank04分割線組件Divider文本組件TextText組件用于顯示文本信息。常用的屬性有:fontSize:設(shè)置字體大小fontColor:設(shè)置字體顏色textAlign:設(shè)置文本對齊格式fontWeight:設(shè)置字體權(quán)重fontStyle:設(shè)置字體樣式decoration:設(shè)置文本裝飾線maxLines:設(shè)置文本最大行數(shù)textOverFlow:設(shè)置文本超長時的顯示方式文本組件TextText('Hello,
HarmonyOS;
Hi
ArkUI')
.fontSize(20)
//大小
.fontColor('#ff0000')
//顏色
.textAlign(TextAlign.Center)
//文本的對齊方式(Start/Center/End)
.fontWeight(FontWeight.Bold)
//字重
.fontStyle(FontStyle.Italic)
//樣式(正常:Normal
斜體:Italic)
//給文本添加裝飾線,Unerline為下劃線
.decoration({type:
TextDecorationType.Underline,
color:
Color.Black})
.maxLines(1)
//設(shè)置行數(shù)為1時可與下面的截斷方式配合使用
.textOverflow({overflow:
TextOverflow.Ellipsis})//截斷方式圖片組件ImageImage組件用來渲染展示圖片,只需要給Image組件設(shè)置圖片地址、寬和高,圖片就能顯示出來。示例代碼如下。Image($r("app.media.icon"))
.width(100)
.height(100)圖片地址可以是本地圖片也可以是網(wǎng)絡(luò)圖片。引用本地圖片資源時,建議使用$r方式來管理需全局使用的圖片資源。支持的圖片格式包括png、jpg、bmp、svg和gif。圖片組件Image圖片縮放處理使用objectFit屬性設(shè)置圖片的縮放類型,objectFit的參數(shù)類型為ImageFit。ImageFit.Cover(默認(rèn)值):保持寬高比進行縮小或者放大,使得圖片兩邊都大于或等于顯示邊界;ImageFit.Fill:不保持寬高比進行放大縮小,使得圖片充滿顯示邊界,可以看到圖片為了適應(yīng)屏幕,改變了寬高比;ImageFit.Contain:保持寬高比進行縮小或者放大,使得圖片完全顯示在顯示邊界內(nèi);ImageFit.None:保持原有尺寸顯示;ImageFit.ScaleDown:保持寬高比顯示,圖片縮小或者保持不變。圖片組件Image原圖ImageFit.CoverImageFit.FillImageFit.ContainImageFit.NoneImageFit.ScaleDown空白填充組件BlankBlank表示空白填充組件,在線性布局容器組件內(nèi)用來填充組件在主軸方向上的剩余尺寸。例如:在下圖中,Blank在Row方向上的使用,除了子組件的本身寬度尺寸外,剩余尺寸用Blank占滿,子組件可以很容易實現(xiàn)靠左或靠右擺放。分隔線組件Divider在UI開發(fā)中經(jīng)常用到的分割線,可以用組件Divider實現(xiàn)。使用的示例代碼如下。Divider()
//無參
.vertical(true)
//分割線的方向,默認(rèn)是false水平,true代表垂直方向
.color(Color.Red)
//分割線的顏色
.strokeWidth(1)
//分割線的線寬
.lineCap(LineCapStyle.Round)//分割線的樣式開發(fā)數(shù)據(jù)展示頁010203彈性布局Flex層疊布局容器Stack進度條組件Progress04滑動條組件Slider彈性布局Flex彈性布局Flex可以靈活的實現(xiàn)線性布局Row和Column的設(shè)置效果,F(xiàn)lex的排列方向和對齊格式是在參數(shù)中設(shè)置的。參數(shù)direction的值決定Flex的排列方向。彈性布局Flex參數(shù)justfyContent的值決定主軸的對齊格式。參數(shù)alignItems的值決定交叉軸的對齊格式。層疊布局容器Stack層疊布局容器組件Stack,是把子組件按照設(shè)置的對齊格式順序依次堆疊,后一個子組件覆蓋在前一個子組件上邊。子組件的對齊方式使用alignContent參數(shù)來設(shè)置。進度條組件ProgressProgress進度條,用于顯示內(nèi)容加載或操作處理等進度。不同類型的進度條Progress參數(shù):value:指定當(dāng)前進度值(必填)total:指定進度總長,默認(rèn)值100.(選填)type:指定進度條類型,默認(rèn)值ProgressType.Linear(選填)Progress常用屬性color:進度條的顏色,默認(rèn)為藍(lán)色style:進度條的樣式,樣式內(nèi)的可選設(shè)置有strokeWidth:設(shè)置進度條寬度scaleCount:設(shè)置環(huán)形進度條總刻度scaleWidth:設(shè)置環(huán)形進度條刻度粗細(xì)value:當(dāng)前進度,會覆蓋參數(shù)的當(dāng)前進度進度條組件ProgressProgress({
value:
85,
//參數(shù)1:必選,當(dāng)前進度
total:100,
//參數(shù)2:可選,最大進度,默認(rèn)100
type:
ProgressType.ScaleRing
//參數(shù)3:可選,進度條類型})
.size({width:
80,
height:
80})
.color(Color.Pink)
//屬性1:進度條的顏色,默認(rèn)為藍(lán)色
.style({
//屬性2:設(shè)置進度條的樣式
strokeWidth:20,
//strokeWidth:設(shè)置進度條寬度
scaleCount:100,
//scaleCount:設(shè)置環(huán)形進度條總刻度數(shù)
scaleWidth:10
//scaleWidth:設(shè)置環(huán)形進度條刻度粗細(xì)
})
.value(22)
//屬性3:當(dāng)前進度,會覆蓋參數(shù)的當(dāng)前進度滑動條組件Slider滑動條組件Slider,用來快速調(diào)節(jié)音量、亮度等。Slider組件默認(rèn)寬度為父容器寬度的100%。Slider常用的參數(shù)說明如下:Slider(value:{value?:
number,
//當(dāng)前進度值,默認(rèn)值0
min?:
number,
//設(shè)置最小值,默認(rèn)值0max?:
number,
//設(shè)置最大值,默認(rèn)值100step?:
number,
//設(shè)置Slider滑動跳動值,默認(rèn)值1style?:
SliderStyle
//設(shè)置Slider的滑塊樣式,默認(rèn)值Outset})滑動條組件SliderSliderStyle的取值有兩種SliderStyle.OutSet:滑塊在滑軌上SliderStyle.InSet:滑塊在滑軌內(nèi)Slider(){...
}
.blockColor(Color.Red)//設(shè)置滑塊的顏色
.selectedColor(Color.Green)//設(shè)置滑軌的已滑動顏色
.showSteps(true)//默認(rèn)值false,設(shè)置當(dāng)前是否顯示步長刻度值
.showTips(true)//默認(rèn)值false,設(shè)置滑動時是否顯示氣泡提示百分比}SliderStyle常用的屬性滑動條組件SliderSlider滑動時觸發(fā)onChange的事件回調(diào),value為當(dāng)前進度值,mode為拖動狀態(tài)。其中mode有4種:SliderChangeMode.Begin:開始拖動滑塊。SliderChangeMode.Moving:正在拖動滑塊過程中。SliderChangeMode.End:結(jié)束拖動滑塊。SliderChangeMode.Click:點擊滑動條使滑塊位置移動。Slider(){...
}.onChange((value:
number,
mode:
SliderChangeMode)
=>
{
//todo
})彈性布局與層疊布局彈性布局Flex彈性布局Flex可以靈活的實現(xiàn)線性布局Row和Column的設(shè)置效果,F(xiàn)lex的排列方向和對齊格式是在參數(shù)中設(shè)置的。參數(shù)direction的值決定Flex的排列方向。彈性布局Flex參數(shù)justifyContent的值決定主軸的對齊格式。參數(shù)alignItems的值決定交叉軸的對齊格式。彈性布局Flex-使用示例@Entry@Componentstruct
FlexExample
{
build()
{
Flex({
direction:
FlexDirection.Row,
justifyContent:
FlexAlign.End,
alignItems:
ItemAlign.Center
})
{
Text('文本1')
.width('30%')
.height(50)
.backgroundColor(0xF5DEB3)
.textAlign(TextAlign.Center)
Text('文本2')
.width('30%')
.height(70)
.backgroundColor(0xD2B48C)
.textAlign(TextAlign.Center)
Text('文本3')
.width('30%')
.height('100%')
.backgroundColor(0xF5DEB3)
.textAlign(TextAlign.Center)
}.width('100%').height(120).padding(10).backgroundColor(0xAFEEEE)
}}層疊布局容器Stack層疊布局容器組件Stack,是把子組件按照設(shè)置的對齊格式順序依次堆疊,后一個子組件覆蓋在前一個子組件上邊。子組件的對齊方式使用alignContent參數(shù)來設(shè)置。層疊布局容器Stack-使用示例@Entry@Componentstruct
StackExample
{
build()
{
Stack({
alignContent:
Alignment.Bottom
})
{
Text('第一個子組件').width('90%').height('100%').backgroundColor('#d2cab3').align(Alignment.Top)
Text('第二個子組件').width('70%').height('60%').backgroundColor('#c1cbac').align(Alignment.Top)
Text('第三個子組件').width('50%').height('30%').backgroundColor('#e0e3d8').align(Alignment.Top)
}.width('100%').height(150).margin({
top:
5
})
}}進度條和滑動條進度條組件ProgressProgress進度條,用于顯示內(nèi)容加載進度或操作處理進度等。不同類型的進度條Progress參數(shù):value:指定當(dāng)前進度值(必填)total:指定進度總長,默認(rèn)值100.(選填)type:指定進度條類型,默認(rèn)值ProgressType.Linear(選填)Progress常用屬性color:進度條的顏色,默認(rèn)為藍(lán)色style:進度條的樣式,樣式內(nèi)的可選設(shè)置有strokeWidth:設(shè)置進度條寬度scaleCount:設(shè)置環(huán)形進度條總刻度scaleWidth:設(shè)置環(huán)形進度條刻度粗細(xì)value:當(dāng)前進度,會覆蓋參數(shù)的當(dāng)前進度進度條組件Progress-使用示例Progress({
value:
85,
//參數(shù)1:必選,當(dāng)前進度
total:100,
//參數(shù)2:可選,最大進度,默認(rèn)100
type:
ProgressType.ScaleRing
//參數(shù)3:可選,進度條類型})
.size({width:
80,
height:
80})
.color(Color.Pink)
//屬性1:進度條的顏色,默認(rèn)為藍(lán)色
.style({
//屬性2:設(shè)置進度條的樣式
strokeWidth:20,
//strokeWidth:設(shè)置進度條寬度
scaleCount:100,
//scaleCount:設(shè)置環(huán)形進度條總刻度數(shù)
scaleWidth:10
//scaleWidth:設(shè)置環(huán)形進度條刻度粗細(xì)
})
.value(22)
//屬性3:當(dāng)前進度,會覆蓋參數(shù)的當(dāng)前進度滑動條組件Slider滑動條組件Slider,用來快速調(diào)節(jié)音量、亮度等。Slider組件默認(rèn)寬度為父容器寬度的100%。Slider常用的參數(shù):Slider(value:{value?:
number,
//當(dāng)前進度值,默認(rèn)值0
min?:
number,
//設(shè)置最小值,默認(rèn)值0max?:
number,
//設(shè)置最大值,默認(rèn)值100step?:
number,
//設(shè)置Slider滑動跳動值,默認(rèn)值1style?:
SliderStyle
//設(shè)置Slider的滑塊樣式,默認(rèn)值OutSet})滑動條組件SliderSliderStyle的取值有兩種SliderStyle.OutSet:滑塊在滑軌上SliderStyle.InSet:滑塊在滑軌內(nèi)Slider(){...
}
.blockColor(Color.Red)//設(shè)置滑塊的顏色
.selectedColor(Color.Green)//設(shè)置滑軌的已滑動顏色
.showSteps(true)//默認(rèn)值false,設(shè)置當(dāng)前是否顯示步長刻度值
.showTips(true)//默認(rèn)值false,設(shè)置滑動時是否顯示氣泡提示百分比}Slider常用的屬性滑動條組件SliderSlider滑動時觸發(fā)onChange的事件回調(diào),在回調(diào)方法內(nèi)箭頭函數(shù)的參數(shù)value為當(dāng)前進度值,mode為拖動狀態(tài)。其中mode有4種:SliderChangeMode.Begin:開始拖動滑塊。SliderChangeMode.Moving:正在拖動滑塊過程中。SliderChangeMode.End:結(jié)束拖動滑塊。SliderChangeMode.Click:點擊滑動條使滑塊位置移動。Slider(){...
}.onChange((value:
number,
mode:
SliderChangeMode)
=>
{
//todo
})滑動組件Slider-使用示例@Entry@Componentstruct
SliderExample
{
@State
inSetValue:
number
=
40
build()
{
Column({
space:
8
})
{
Text('滑塊在導(dǎo)軌內(nèi)').fontSize(9).fontColor(0xCCCCCC).width('90%').margin(15)
Row()
{
Slider({
value:
this.inSetValue,
step:
10,
style:
SliderStyle.InSet
})
.blockColor('#191970').trackColor('#ADD8E6').selectedColor('#4169E1')
.showSteps(true)
.onChange((value:
number,
mode:
SliderChangeMode)
=>
{
this.inSetValue
=
value
console.info('value:'
+
value
+
'mode:'
+
mode.toString())
})
Text(this.inSetValue+"").fontSize(12)
}
.width('80%')
}.width('100%')
}}開發(fā)登錄頁010203輸入框組件Input按鈕組件Button開關(guān)組件Toggle04文本提示框promptAction輸入框組件TextInputTextInput組件用于輸入單行文本,響應(yīng)輸入事件。TextInput的使用也非常廣泛,例如在登錄頁中的賬號輸入和密碼輸入。TextInput組件支持文本樣式設(shè)置TextInput()
.fontColor(Color.Blue)
.fontSize(20)
.fontStyle(FontStyle.Italic)
.fontWeight(FontWeight.Bold)
.fontFamily('Arial')輸入框組件TextInput設(shè)置輸入提示文本我們平常使用輸入框時常??吹捷斎肟蛏蠒刑崾疚淖郑绲卿涃~號時會有“請輸入賬號”這樣的文本提示,當(dāng)用戶輸入內(nèi)容后,提示文本就消失了。使用placeholder設(shè)置提示文本使用placeholderColor和placeholderFont分別設(shè)置提示文本的顏色和樣式。TextInput({
placeholder:
'請輸入帳號'
})
.placeholderColor(‘#999999')
.placeholderFont({
size:
20,
weight:
FontWeight.Medium,
family:
'cursive',
style:
FontStyle.Italic
})輸入框組件TextInput設(shè)置輸入類型可以使用type屬性來設(shè)置輸入框類型。例如密碼輸入框,一般輸入密碼的時候,為了用戶密碼安全,內(nèi)容會顯示為“”。這種情況就可以設(shè)置type屬性值為InputType.Password實現(xiàn),如下面示例所示。TextInput({
placeholder:
'請輸入密碼'
})
.type(InputType.Password)輸入框組件TextInput輸入類型InputType枚舉值:Normal:基本輸入模式。支持輸入數(shù)字、字母、下劃線、空格、特殊字符。Password:密碼輸入模式。Email:e-mail地址輸入模式。Number:純數(shù)字輸入模式。輸入框組件TextInput獲取輸入文本在onChange事件回調(diào)方法中,獲取輸入框的輸入文本。如下面示例所示。
TextInput({
placeholder:
'請輸入賬號'
})
.onChange((value:
string)
=>
{
this.text
=
value//this.text為@State修飾的狀態(tài)變量
})按鈕組件ButtonButton組件主要用來響應(yīng)點擊操作,可以包含子組件。Button使用示例Button('登錄',
{
type:
ButtonType.Capsule,
stateEffect:
true
})
.width('90%')
.onClick(()
=>
{
//處理點擊事件邏輯
}))示例中的代碼,type用于定義按鈕樣式,ButtonType.Capsule表示膠囊形按鈕;stateEffect用于設(shè)置按鈕按下時是否開啟切換效果,當(dāng)狀態(tài)置為false時,點擊效果關(guān)閉,默認(rèn)值為true。并且給Button綁定onClick事件,每當(dāng)用戶點擊Button的時候,就會回調(diào)執(zhí)行onClick方法,調(diào)用里面的邏輯代碼。按鈕組件Button按鈕樣式ButtonType枚舉值Capsule:膠囊型按鈕(圓角默認(rèn)為高度的一半)。Circle:圓形按鈕。Normal:普通按鈕(默認(rèn)不帶圓角)。按鈕組件Button包含子組件Button組件可以包含子組件,例如在Button組件包含了一個Image組件。Button({
type:
ButtonType.Circle,
stateEffect:
true
})
{
Image($r('app.media.icon_delete'))
.width(30)
.height(30)}.width(55).height(55).backgroundColor('#317aff')開關(guān)組件ToggleToggle組件表示開關(guān),開關(guān)狀態(tài)的初始化用isOn參數(shù)進行設(shè)置;使用type設(shè)置開關(guān)樣式,開關(guān)狀態(tài)切換時觸發(fā)onChange事件回調(diào)方法。Toggle({
isOn:true,
//設(shè)置開關(guān)狀態(tài)組件初始化狀態(tài)為開
type:
ToggleType.Switch})//設(shè)置組件為開關(guān)樣式
.selectedColor("#ffa6c88c")//設(shè)置組件打開狀態(tài)的背景顏色
.switchPointColor(Color.Red)//設(shè)置
type類型為
Switch時的圓形滑塊顏色
.onChange((isOn)
=>
{//事件回調(diào),isOn為開與關(guān)的狀態(tài)值
console.log(
"開關(guān)狀態(tài):"
+
isOn)
})Toggle的type樣式:ToggleType.Switch為開關(guān)樣式;ToggleType.Checkbox為單選框樣式;ToggleType.Button為按鈕樣式,可以在Toggle中加入子組件。文本提示框promptActionpromptAction是在@mptAction模塊里提供的,使用時需要導(dǎo)入@mptAction模塊,用promptAction.showToast()提示信息。import
promptAction
from
'@mptAction';
//導(dǎo)入文本提示框模塊…
promptAction.showToast({
message:
"消息",
//顯示文本,必填項
duration:
2000,
//顯示時長,可選項,單位毫秒,范圍
[1500,
10000],默1500
bottom:
1000
//Toast的顯示位置距離底部的間距,可選項
})基礎(chǔ)組件2010203輸入框組件Input按鈕組件Button開關(guān)組件Toggle輸入框組件TextInputTextInput組件用于輸入單行文本,響應(yīng)輸入事件。TextInput的使用也非常廣泛,例如在登錄頁中的賬號輸入和密碼輸入。TextInput組件支持文本樣式設(shè)置TextInput()
.fontColor(Color.Blue)
.fontSize(20)
.fontStyle(FontStyle.Italic)
.fontWeight(FontWeight.Bold)
.fontFamily('Arial')輸入框組件TextInput設(shè)置輸入提示文本我們平常使用輸入框時常常看到輸入框上會有提示文字,例如登錄賬號時會有“請輸入賬號”這樣的文本提示,當(dāng)用戶輸入內(nèi)容后,提示文本就消失了。使用placeholder設(shè)置提示文本使用placeholderColor和placeholderFont分別設(shè)置提示文本的顏色和樣式。TextInput({
placeholder:
'請輸入帳號'
})
.placeholderColor(‘#999999')
.placeholderFont({
size:
20,
weight:
FontWeight.Medium,
family:
'cursive',
style:
FontStyle.Italic
})輸入框組件TextInput設(shè)置輸入類型可以使用type屬性來設(shè)置輸入框類型。例如密碼輸入框,一般輸入密碼的時候,為了用戶密碼安全,內(nèi)容會顯示為“”。這種情況就可以設(shè)置type屬性值為InputTyp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)村自建房承建與農(nóng)村新能源利用合作合同
- 二零二五年度形婚雙方婚姻關(guān)系協(xié)議及婚后財產(chǎn)分割與子女撫養(yǎng)安排3篇
- 二零二五年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)場地轉(zhuǎn)租合同3篇
- 2025年度高新技術(shù)研發(fā)貸款擔(dān)保協(xié)議3篇
- 2025年度消防安全設(shè)施設(shè)備安裝與驗收協(xié)議3篇
- 2025年度內(nèi)墻粉刷施工與室內(nèi)空氣凈化技術(shù)合作合同3篇
- 二零二五年度生豬養(yǎng)殖與農(nóng)產(chǎn)品市場銷售合作合同范本3篇
- 2025年度公司對個人創(chuàng)業(yè)團隊對賭合同3篇
- 二零二五年度企業(yè)車輛共享平臺使用服務(wù)合同3篇
- 2025年度公司與公司簽訂的體育產(chǎn)業(yè)合作發(fā)展協(xié)議2篇
- 景區(qū)安全管理教育培訓(xùn)
- 工業(yè)氣瓶使用安全管理規(guī)定(5篇)
- 《高中體育與健康》考試復(fù)習(xí)題庫及答案
- 高空拋物安全宣傳教育課件
- 供應(yīng)鏈ESG管理策略
- 2024秋期國家開放大學(xué)本科《納稅籌劃》一平臺在線形考(形考任務(wù)一至五)試題及答案
- 紙巾合同范本
- 四川省德陽市2025屆數(shù)學(xué)三年級第一學(xué)期期末聯(lián)考模擬試題含解析
- 2024年平面設(shè)計師技能及理論知識考試題庫(附含答案)
- 2024年高考真題-英語(新高考Ⅰ卷) 含解析
- 2023-2024年6月廣東省普通高中學(xué)業(yè)水平生物考試及答案
評論
0/150
提交評論