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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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 …