ArkTs實現骰子布局

@Entry
@Component
struct workA {// 定義6種顏色數組,使用ResourceColor類型確保顏色值合法性@State color: ResourceColor[] = ['#ef2816', '#f0a200', '#6ab002', '#005868', '#41192e', '#141411']// 定義公共樣式裝飾器,避免重復樣式代碼@Stylesys() {// 白色圓形基礎樣式(寬高20,圓角10,白色背景).width(20).height(20).borderRadius(10).backgroundColor('#fff')}build() {Column() {/* 第一行:3個Flex容器(1-3號元素) */Row() {ForEach([1, 2, 3], (item: number) => {Flex({// 布局規則:// 第一個元素居中排列(橫向),其余元素兩端分布(縱向)justifyContent: item == 1 ? FlexAlign.Center : FlexAlign.SpaceBetween,alignItems: item == 1 ? ItemAlign.Center : ItemAlign.Auto,direction: item == 1 ? FlexDirection.Row : FlexDirection.Column}) {// 根據item值動態生成子元素if (item == 1) {// 情況1:單個居中圓圈Text().ys()} else if (item == 2) {// 情況2:兩個圓圈(右端對齊 + 默認位置)Text().ys().alignSelf(ItemAlign.End)Text().ys()} else {// 情況3:三個圓圈(右端對齊 + 居中 + 默認位置)Text().ys().alignSelf(ItemAlign.End)Text().ys().alignSelf(ItemAlign.Center)Text().ys() // 注意:這里保持與上方樣式一致}}// 容器基礎樣式.width(100).height(100).borderRadius(10).padding(10)// 根據索引取顏色(item-1對應數組下標).backgroundColor(this.color[item - 1])})}/* 第二行:3個Flex容器(4-6號元素) */Row() {ForEach([4, 5, 6], (item: number) => {Flex({// 統一使用兩端對齊布局justifyContent: FlexAlign.SpaceBetween}) {if (item == 4) {// 情況4:兩列,每列兩個上下分布的圓圈Column() {Text().ys()Text().ys()}.height('100%').justifyContent(FlexAlign.SpaceBetween)Column() {Text().ys()Text().ys()}.height('100%').justifyContent(FlexAlign.SpaceBetween)} else if (item == 5) {// 情況5:三列(兩端列2個圓圈,中間列1個居中圓圈)Column() {Text().ys()Text().ys()}.height('100%').justifyContent(FlexAlign.SpaceBetween)Column() {Text().ys()}.height('100%').justifyContent(FlexAlign.Center)Column() {Text().ys()Text().ys()}.height('100%').justifyContent(FlexAlign.SpaceBetween)} else {// 情況6:兩列,每列三個均勻分布的圓圈Column() {Text().ys()Text().ys()Text().ys()}.height('100%').justifyContent(FlexAlign.SpaceBetween)Column() {Text().ys()Text().ys()Text().ys()}.height('100%').justifyContent(FlexAlign.SpaceBetween)}}// 容器基礎樣式.width(100).height(100).borderRadius(10).padding(10)// 根據索引取顏色(注意數組下標從0開始).backgroundColor(this.color[item - 1])})}}// 頁面整體樣式.padding(30)          // 外圍留白30vp.backgroundColor("#eee") // 灰色背景.width('100%')        // 撐滿父容器.height(300)          // 固定高度300vp}
}

效果圖如下:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/88874.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/88874.shtml
英文地址,請注明出處:http://en.pswp.cn/web/88874.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c語言內存函數以及數據在內存中的存儲

代碼見:登錄 - Gitee.com 1. memcpy使用和模擬實現 strcpy,strncpy是拷貝字符串的,有局限性 函數原型: void * memcpy ( void * destination, const void * source, size_t num ); 功能: memcpy 是完成內存塊拷?的…

Codeforces Round 787 (Div. 3)(A,B,C,D,E,F,G)

Codeforces Round 787 (Div. 3) - Codeforces A. Food for Animals 題意 有a袋狗糧,b袋貓糧,c袋通用糧食,問現在有x只狗y只貓,每一個動物都要吃一袋糧食,問糧食夠不夠吃 思路 首先肯定考慮貓吃貓糧,狗吃狗糧。然后再考慮如果不夠吃的話才會去吃通用…

LLaMA-Factory的webui快速入門

一、webui的啟動方式 LLaMA-Factory 支持通過 WebUI 零代碼微調大語言模型。 在完成安裝 后,您可以通過以下指令進入 WebUI: llamafactory-cli webui 使用上面命令啟動服務后,即可使用默認7860端口進行訪問。訪問地址:http://ip:7860,截止…

【第四節】ubuntu server安裝docker

首先更新軟件源 sudo apt update sudo apt upgrade安裝docker 下載 Docker 官方 GPG 密鑰 # 1. 下載 Docker 官方 GPG 密鑰 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg再次更新軟件源…

Kubernetes的微服務

用控制器來完成集群的工作負載,那么應用如何暴漏出去?需要通過微服務暴漏出去后才能被訪問Service是一組提供相同服務的Pod對外開放的接口。借助Service,應用可以實現服務發現和負載均衡。service默認只支持4層負載均衡能力,沒有7…

退出登錄后頭像還在?這個緩存問題坑過多少前端!

目錄 1. 為什么退出登錄后頭像還在? ① 緩存沒清理干凈 ② 頭像URL沒更新 ③ 后端會話失效,但靜態資源可訪問 2. 怎么解決?5種常見方案 ? 方案1:強制刷新頁面(簡單粗暴) ? 方案2:給頭像…

Windows下白嫖ClaudeCode

我的邀請鏈接:https://anyrouter.top/register?afffMJn 我的邀請鏈接:https://anyrouter.top/register?afffMJn 我的邀請鏈接:https://anyrouter.top/register?afffMJn 兄弟們,交個朋友啊!一定要用我的呀&#xff0…

windows在anaconda中下載安裝fasttext

windows在anaconda中下載安裝fasttext 1.訪問fasttext-wheel,點擊對應鏈接,下載對應Python版本、操作系統類型 的.whl文件: 鏈接地址:https://pypi.org/project/fasttext-wheel/#files 打開anaconda終端,切換到上面的…

mysql5.7系列-索引下推(cover_index)

什么是索引下推 ICP(Index Condition Pushdown)是在MySQL 5.6版本上推出的查詢優化策略,把本來由Server層做的索引條件檢查下推給存儲引擎層來做,以降低回表和訪問存儲引擎的次數,提高查詢效率。 回顧下mysql的架構分…

計算機網絡(基礎概念)

計算機網絡(基礎概念)1 初識協議1.1 協議分層2 OSI七層模型2.1 物理層2.2 數據鏈路層2.3 網絡層2.4 傳輸層2.5 應用層3 TCP/IP協議族3.1 什么是TCP/IP協議?3.1.1 OS與網絡關系4 網絡傳輸的基本流程4.1 局域網4.2 MAC地址5 跨網絡傳輸5.1 IP地址6 Socket…

專題 JavaScript 函數基礎

你將知道:函數聲明和表達式函數聲明和表達式之間的區別什么是匿名函數什么是 IIFE命名函數表達式this 關鍵字函數是調用該函數時執行的代碼塊 。函數聲明和表達式讓我們回顧一下它的語法:functionfunctionName(param1, param2, ..., paramN) {// Functio…

數據結構——優先隊列(priority_queue)的巧妙運用

優先隊列是一種相對高級的數據結構,它的底層原理是二叉堆。然而本篇不會執著于深挖其背后的原理,更主要的是理一下它在題目中的一些實用方法,幫助你更快的上手使用。 優先隊列(priority_queue) 優先隊列的特別之處就在于它可以自動進行排序&…

Java:繼承和多態(必會知識點整理)

主要內容繼承多態向上轉型向下轉型方法重寫方法重載super關鍵字動態綁定封裝訪問控制構造方法規則一、繼承 1. 概念: 一句話說就是:“共性抽取,代碼復用”子類會將父類中的成員變量或者成員方法繼承到子類中子類繼承父類之后,必須…

基于esp32系列的開源無線dap-link項目使用介紹

基于esp32系列的開源無線dap-link項目使用介紹🔖有關esp32/8266相關項目:需要自己搭建編譯環境: https://github.com/windowsair/wireless-esp8266-dap/tree/master🌿支持esp32/c3/s3,支持在線固件燒錄,支持AP配網&…

深入了解linux系統—— 進程信號的產生

前言 進程在收到信號之后,可以立即處理,也可以在合適的時間再處理(1-31號普通信號可以不被立即處理) 信號不是被立即處理,信號就要被保存下來,讓進程在合適的時間再去處理。 相關概念 在了解進程是如何保存…

【Bluedroid】藍牙協議棧enable流程深度解析

本文詳細剖析 Bluedroid 藍牙功能啟用的核心流程,從enable()函數觸發開始,深入解析藍牙協議棧的異步啟動機制、核心協議模塊初始化、硬件控制器綁定及狀態同步全流程。重點闡述接口就緒性檢查、異步線程管理、配置文件回調機制等關鍵環節,揭示…

各種開發語言主要語法對比

各類主流編程語言的語法有著顯著差異,這些差異源于語言設計哲學(簡潔性 vs 顯式性)、應用領域(系統級、Web、數據科學)、運行方式(編譯 vs 解釋)以及支持的范式(面向對象、函數式、過…

小鵬汽車6月交付車輛34,611輛,同比增長224%

小鵬汽車-W(09868)發布公告,2025年6月,小鵬汽車共交付智能電動汽車34,611輛,同比增長224%,這標志著小鵬汽車已連續第八個月交付量超過了30,000輛。2025年第二季度,小鵬汽車共交付103,181 輛智能電動車,創下…

深入理解觀察者模式:構建松耦合的交互系統

在軟件開發中,我們經常遇到這樣的場景:一個對象的狀態變化需要通知其他多個對象,并且這些對象需要根據變化做出相應的反應。比如,用戶界面中的數據變化需要實時反映到多個圖表上,或者電商系統中的庫存變化需要通知訂單…

React強大且靈活hooks庫——ahooks入門實踐之常用場景hook

什么是 ahooks? ahooks 是一個 React Hooks 庫,提供了大量實用的自定義 hooks,幫助開發者更高效地構建 React 應用。其中場景類 hooks 是 ahooks 的一個重要分類,專門針對特定業務場景提供解決方案。 安裝 ahooks npm install …