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

基于ArkUI的漸變色盤—容器組件的學習分享(下)

系統
目前HarmonyOS ArkUI 3.0框架的容器組件共有21個,在學習完這21個容器組件后,打算使用盡可能多的容器組件基于HarmonyOS ArkUI 3.0框架去完成一個實踐開發。

[[439847]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

前言

【木棉花】基于ArkUI的漸變色盤——容器組件的學習分享(中)

效果圖

歡迎頁面線性漸變角度添加了漸變徑向漸變

【木棉花】基于ArkUI的漸變色盤——容器組件的學習分享(下)-鴻蒙HarmonyOS技術社區【木棉花】基于ArkUI的漸變色盤——容器組件的學習分享(下)-鴻蒙HarmonyOS技術社區【木棉花】基于ArkUI的漸變色盤——容器組件的學習分享(下)-鴻蒙HarmonyOS技術社區【木棉花】基于ArkUI的漸變色盤——容器組件的學習分享(下)-鴻蒙HarmonyOS技術社區

代碼文件結構

【木棉花】基于ArkUI的漸變色盤——容器組件的學習分享(下)-鴻蒙HarmonyOS技術社區

正文

一、角度漸變SweepGradient

1. 添加角度漸變頁面

Tabs

Tabs:一種可以通過頁簽進行內容視圖切換的容器組件,每個頁簽對應一個內容視圖

參數:

barPosition:非必填,指定頁簽位置來創建Tabs容器組件

  • BarPosition.Start:vertical屬性方法設置為true時,頁簽位于容器左側;vertical屬性方法設置為false時,頁簽位于容器頂部(默認)
  • BarPosition.End:vertical屬性方法設置為true時,頁簽位于容器右側;vertical屬性方法設置為false時,頁簽位于容器底部

index:非必填,指定初次初始頁簽索引,參數類型為number,即直接填數字,默認值為0

controller:非必填,設置Tabs控制器,默認值為null,一般都直接不填的

對Tabs組件的控制器,用于控制Tabs組件進行頁簽切換

changeIndex(value: number): void:控制Tabs切換到指定頁簽,index: 頁簽在Tabs里的索引值,索引值從0開始

屬性:

vertical:是否為縱向Tab,參數類型為boolean,默認值為false

scrollable:是否可以通過左右滑動進行頁面切換,參數類型為boolean,默認值為true

barMode:TabBar布局模式

BarMode.Scrollable:TabBar使用實際布局寬度, 超過總長度后可滑動

BarMode.Fixed:所有TabBar平均分配寬度

barWidth:TabBar的寬度值,參數類型為number,即直接填數字

barHeight:TabBar的高度值,參數類型為number,即直接填數字

animationDuration:TabContent滑動動畫時長,參數類型為number,默認值為200

事件:

onChange(callback: (index: number) => void):Tab頁簽切換后觸發的事件

TabContent

TabContent:僅在Tabs中使用,對應一個切換頁簽的內容視圖

屬性:

tabBar:設置TabBar上顯示內容,參數類型:string

通過 “import {結構體名} from 路徑名” 引入自定義組件。

SweepGradient.ets:

  1. import { setreturnButton } from '../util/setreturnButton.ets'
  2. import { setcolorPlate, setSliderPoint } from '../util/setcolorPlate.ets' 
  3.  
  4. @Entry 
  5. @Component 
  6. struct SweepGradient { 
  7.   private controller: TabsController = new TabsController() 
  8.   @State Color1:string = '#808080' 
  9.   @State Point1:number = 0.1 
  10.   @State Color2:string = '#808080' 
  11.   @State Point2:number = 0.4 
  12.   @State Color3:string = '#808080' 
  13.   @State Point3:number = 0.8 
  14.   @State PointX:number = 165 
  15.   @State PointY:number = 165 
  16.  
  17.   build() { 
  18.     Column(){ 
  19.       setreturnButton() 
  20.  
  21.       Tabs({ barPosition: BarPosition.Start, index: 1, controller: this.controller }) { 
  22.         TabContent() { 
  23.           setcolorPlate({ strColor:$Color1, str:'一', inSetValue:$Point1 }) 
  24.         } 
  25.         .tabBar('顏色一'
  26.         .borderColor('#A168FE'
  27.         .borderWidth(2) 
  28.  
  29.         TabContent() { 
  30.           setcolorPlate({ strColor:$Color2, str:'二', inSetValue:$Point2 }) 
  31.         } 
  32.         .tabBar('顏色二'
  33.         .borderColor('#A168FE'
  34.         .borderWidth(2) 
  35.  
  36.         TabContent() { 
  37.           setcolorPlate({ strColor:$Color3, str:'三', inSetValue:$Point3 }) 
  38.         } 
  39.         .tabBar('顏色三'
  40.         .borderColor('#A168FE'
  41.         .borderWidth(2) 
  42.       } 
  43.       .vertical(false
  44.       .scrollable(true
  45.       .barMode(BarMode.Fixed) 
  46.       .barWidth(330) 
  47.       .barHeight(50) 
  48.       .animationDuration(400) 
  49.       .width('98%'
  50.       .height(260) 
  51.       .borderRadius(10) 
  52.       .borderColor('#A168FE'
  53.       .borderWidth(2) 
  54.  
  55.       setSliderPoint({ str:'X坐標'max:330, number:$PointX }) 
  56.       setSliderPoint({ str:'Y坐標'max:330, number:$PointY }) 
  57.  
  58.       Flex(){} 
  59.       .width(330) 
  60.       .height(330) 
  61.       .margin(10) 
  62.       .sweepGradient({ 
  63.         center: [this.PointX, this.PointY], 
  64.         start: 0, 
  65.         end: 359, 
  66.         colors: [[this.Color1, this.Point1], [this.Color2, this.Point2], [this.Color3, this.Point3]] 
  67.       }) 
  68.     } 
  69.     .width('100%'
  70.     .height('100%'
  71.   } 

二、徑向漸變RadialGradient

1. 添加徑向漸變頁面

List

List:列表包含一系列相同寬度的列表項。適合連續、多行呈現同類數據,例如圖片和文本

參數:

space:非必填,列表項間距,參數類型為number,即直接填數字,默認值為0

initialIndex:非必填,設置當前List初次加載時視口起始位置顯示的item,即顯示第一個item,如設置的序號超過了最后一個item的序號,則設置不生效,參數類型為number,即直接填數字,默認值為0

屬性:

listDirection:設置List組件排列方向

  • Axis.Vertical:縱向排列(默認)
  • Axis.Horizontal:橫向排列

editMode:聲明當前List組件是否處于可編輯模式,參數類型為boolean,默認值為false,當設置了true時,則為可以刪除該列表項

edgeEffect:滑動效果

  • EdgeEffect.Spring:彈性物理動效,滑動到邊緣后可以根據初始速度或通過觸摸事件繼續滑動一段距離,松手后回彈(默認)
  • EdgeEffect.None:滑動到邊緣后無效果

chainAnimation:用于設置當前list是否啟用鏈式聯動動效,開啟后列表滑動以及頂部和底部拖拽時會有鏈式聯動的效果。鏈式聯動效果:list內的list-item間隔一定距離,在基本的滑動交互行為下,主動對象驅動從動對象進行聯動,驅動效果遵循彈簧物理動效。參數類型為boolean,默認值為false

事件:

onItemDelete(index: number) => boolean:列表項刪除時觸發

onScrollIndex(firstIndex: number, lastIndex: number) => void:當前列表顯示的起始位置和終止位置發生變化時觸發

ListItem

ListItem:用來展示列表具體item,寬度默認充滿List組件,必須配合List來使用

屬性:

sticky:設置ListItem吸頂效果

  • Sticky.None:無吸頂效果(默認)
  • Sticky.Normal:當前item吸頂,滑動消失

editable:聲明當前ListItem元素是否可編輯,進入編輯模式后可刪除,參數類型為boolean,默認值為false

Scroll

Scroll:可滾動的容器組件,當子組件的布局尺寸超過父組件的視口時,內容可以滾動

屬性:

scrollable:設置滾動方法

  • ScrollDirection.Horizontal:僅支持水平方向滾動
  • ScrollDirection.Vertical:僅支持豎直方向滾動(默認)
  • ScrollDirection.None:不可滾動

scrollBar:設置滾動條狀態

  • Auto.Off:不顯示
  • Auto.On:常駐顯示
  • Auto.Auto:按需顯示(觸摸時顯示,2s后消失)(默認)

scrollBarColor:設置滾動條的顏色,參數類型為Color

scrollBarWidth:設置滾動條的寬度,參數類型為Length

事件:

onScroll(xOffset: number, yOffset: number) => void:滾動事件回調, 返回滾動時水平、豎直方向偏移量

onScrollEdge(side: Edge) => void:滾動到邊緣事件回調

onScrollEnd() => void:滾動停止時事件回調

對于可滾動容器組件的控制器,可以將此組件綁定至容器組件,然后通過它控制容器組件的滾動

scroller.scrollTo:滑動到指定位置

  • xOffset:必填,水平滑動偏移,參數類型為Length
  • yOffset:必填,豎直滑動偏移,參數類型為Length
  • animation:非必填,動畫配置:duration: 滾動時長設置;curve: 滾動曲線設置

scroller.scrollEdge:滾動到容器邊緣

  • value:必填,指定滾動到的邊緣位置,參數類型為Edge

scroller.scrollPage:滾動到下一頁或者上一頁

  • next:必填,是否向下翻頁,參數類型為boolean,true表示向下翻頁,false表示向上翻頁

scroller.currentOffset:返回當前的滾動偏移量,返回值xOffset: number水平滑動偏移,yOffset: number豎直滑動偏移

scroller.scrollToIndex:滑動到指定Index

  • value:必填,要滑動到的列表項在列表中的索引值,參數類型為number,即直接填數字

通過 “import {結構體名} from 路徑名” 引入自定義組件。

RadialGradient.ets:

  1. import { setreturnButton } from '../util/setreturnButton.ets'
  2. import { setcolorPlate, setSliderPoint } from '../util/setcolorPlate.ets' 
  3.  
  4. @Entry 
  5. @Component 
  6. struct RadialGradient { 
  7.   scroller: Scroller = new Scroller() 
  8.   @State Color1:string = '#808080' 
  9.   @State Point1:number = 0.1 
  10.   @State Color2:string = '#808080' 
  11.   @State Point2:number = 0.4 
  12.   @State Color3:string = '#808080' 
  13.   @State Point3:number = 0.8 
  14.   @State PointX:number = 165 
  15.   @State PointY:number = 165 
  16.   @State Radius:number = 165 
  17.  
  18.   build() { 
  19.     Scroll(this.scroller){ 
  20.       Column(){ 
  21.         setreturnButton() 
  22.  
  23.         List({ space: 10, initialIndex: 0 }) { 
  24.           ListItem() { 
  25.             setcolorPlate({ strColor:$Color1, str:'一', inSetValue:$Point1 }) 
  26.           } 
  27.           .borderRadius(10) 
  28.           .borderColor('#A168FE'
  29.           .borderWidth(2) 
  30.  
  31.           ListItem() { 
  32.             setcolorPlate({ strColor:$Color2, str:'二', inSetValue:$Point2 }) 
  33.           } 
  34.           .borderRadius(10) 
  35.           .borderColor('#A168FE'
  36.           .borderWidth(2) 
  37.  
  38.           ListItem() { 
  39.             setcolorPlate({ strColor:$Color3, str:'三', inSetValue:$Point3 }) 
  40.           } 
  41.           .borderRadius(10) 
  42.           .borderColor('#A168FE'
  43.           .borderWidth(2) 
  44.         } 
  45.         .listDirection(Axis.Vertical) 
  46.         .divider({ strokeWidth: 2, color: '#808080', startMargin: 10, endMargin: 10 }) 
  47.         .edgeEffect(EdgeEffect.None) 
  48.         .chainAnimation(true
  49.         .editMode(false
  50.         .width('98%'
  51.         .height(500) 
  52.         .padding({ top:5, bottom:5 }) 
  53.  
  54.         setSliderPoint({ str:'X坐標'max:330, number:$PointX }) 
  55.         setSliderPoint({ str:'Y坐標'max:330, number:$PointY }) 
  56.         setSliderPoint({ str:'半徑'max:330, number:$Radius }) 
  57.  
  58.         Flex(){} 
  59.         .width(330) 
  60.         .height(330) 
  61.         .margin(10) 
  62.         .radialGradient({ 
  63.           center: [this.PointX, this.PointY], 
  64.           radius: this.Radius, 
  65.           colors: [[this.Color1, this.Point1], [this.Color2, this.Point2], [this.Color3, this.Point3]] 
  66.         }) 
  67.       } 
  68.     } 
  69.     .width('100%'
  70.     .height('100%'
  71.     .scrollable(ScrollDirection.Vertical) 
  72.     .scrollBar(BarState.Auto) 
  73.     .scrollBarColor(Color.Gray) 
  74.     .scrollBarWidth(30) 
  75.   } 

文章相關附件可以點擊下面的原文鏈接前往下載

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

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-12-10 15:05:41

鴻蒙HarmonyOS應用

2021-12-10 15:02:47

鴻蒙HarmonyOS應用

2024-01-16 08:22:42

Gradient線性梯度

2024-01-29 08:57:06

CSS漸變色前端

2023-05-06 07:23:57

2022-10-24 14:49:54

ArkUI心電圖組件

2024-07-31 20:38:18

2022-07-26 14:40:42

ArkUIJS

2022-10-17 14:36:09

ArkUI虛擬搖桿組件

2021-12-01 15:40:23

鴻蒙HarmonyOS應用

2022-10-19 15:12:05

ArkUI鴻蒙

2022-09-15 15:04:16

ArkUI鴻蒙

2022-03-10 14:57:35

ArkUIets項目開發鴻蒙

2023-04-02 10:06:24

組件vue3sign2.

2015-07-22 15:19:46

Docker云計算微服務

2023-12-29 08:37:59

2018-07-25 17:27:47

華為

2021-12-20 20:30:48

鴻蒙HarmonyOS應用

2012-05-31 10:57:06

HTML5

2022-03-14 15:36:34

Row容器組件Column容器組件鴻蒙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产目拍亚洲精品99久久精品 | 交专区videossex农村 | 91在线电影 | 亚洲精品国产成人 | 精品久久一区二区 | 亚洲国产高清高潮精品美女 | 97高清国语自产拍 | 欧美久久久久久久久中文字幕 | 日韩成人免费 | 亚洲一区黄色 | 亚洲日韩中文字幕一区 | 久久大陆 | 欧美在线成人影院 | 国产精品1区2区 | 日韩国产中文字幕 | 精品国产不卡一区二区三区 | 亚洲一区二区在线 | 五月婷亚洲 | 超碰人人91 | 日韩中出 | 高清成人av| 欧美在线国产精品 | 日韩一区二区在线播放 | 久久人| 国产乱码精品1区2区3区 | 97av视频| 91精品国产一区二区三区 | 精品99久久久久久 | 亚洲国产精品99久久久久久久久 | 97精品国产手机 | 亚洲欧美久久 | 欧美激情一区二区 | 国产一区二 | 国产一级一级毛片 | 五月婷婷在线播放 | 国产高清在线精品一区二区三区 | 成人伊人网 | 草逼网站| 一级片aaa| 久久国| 黄色一级视频 |