HarmonyOS7 支付方式单选卡片:用 FlexAlign.SpaceEvenly 做好支付选择
文章目录前言案例效果和学习目标从布局读到状态重点代码解释完整代码我的小建议前言这组案例开始进入选择类和调节类组件写业务页面时会经常遇到。这个案例围绕Radio 水平卡片展开重点不是把属性背下来而是弄清楚状态、组件和用户操作之间怎么连起来。这篇我会把重点放在卡片布局上尽量说清楚它在真实页面里有什么用。案例效果和学习目标如果把它放到真实项目里常见位置可能是设置页、筛选页、编辑页或者某个需要快速操作的工具面板。用户点一下、选一下、拖一下页面就应该给出明确反馈。维度内容案例主题Radio 水平卡片核心 APIFlexAlign.SpaceEvenly使用场景支付选择文章侧重点卡片布局从布局读到状态代码结构可以按三层读外层负责页面背景和留白中间卡片承载主要内容内部组件处理具体交互。这样的层级不花哨但维护起来比较舒服。我比较推荐先把状态字段命名清楚。选中项、开关状态、滑块数值最好都能从名字看出用途比随手写flag、value后面省心很多。重点代码解释先看一段连续代码基本能判断这个案例的运行方式。它包含入口组件、状态字段以及一部分核心 UI。interfacePaymentRadioCardsItem{value:stringicon:stringcolor:string}EntryComponentstruct PaymentRadioCards{StateisShow:booleantrueStateselectedPay:stringwechatbuild(){Column(){if(this.isShow){Column(){Text(Radio 水平排列 - 支付方式).fontSize(16).fontWeight(FontWeight.Bold).margin({bottom:12})Column(){这段代码可以拆成几块看State保存当前页面状态用户操作之后会触发 UI 更新。FlexAlign.SpaceEvenly是案例的关键入口真正的行为通常由它和事件回调一起完成。布局属性服务于业务表达选中、禁用、拖动这些状态最好都能在视觉上看出来。完整代码下面是整理后的完整代码。组件名已经改成PaymentRadioCards共享颜色也内置到当前文件里单独复制出来读会更方便。constCOLOR_OPTIONS:Array{name:string;value:string}[{name:蓝色,value:#4D96FF},{name:绿色,value:#6BCB77},{name:黄色,value:#FFD93D},{name:红色,value:#FF6B6B},{name:紫色,value:#9B59B6},{name:橙色,value:#FFA500},{name:青色,value:#00BCD4},{name:粉色,value:#FF69B4},{name:灰蓝,value:#607D8B},{name:深色,value:#333333}]constPAGE_BG_COLOR:string#F5F6FAconstCARD_BG_COLOR:string#FFFFFFconstSUBTEXT_COLOR:string#8A8A8AinterfacePaymentRadioCardsItem{value:stringicon:stringcolor:string}EntryComponentstruct PaymentRadioCards{StateisShow:booleantrueStateselectedPay:stringwechatbuild(){Column(){if(this.isShow){Column(){Text(Radio 水平排列 - 支付方式).fontSize(16).fontWeight(FontWeight.Bold).margin({bottom:12})Column(){Row({space:12}){ForEach([{value:wechat,icon:W,color:COLOR_OPTIONS[3].value},{value:alipay,icon:A,color:COLOR_OPTIONS[5].value},{value:bankcard,icon:B,color:COLOR_OPTIONS[1].value}],(item:PaymentRadioCardsItem){Column(){Text(item.icon).fontSize(24).fontWeight(FontWeight.Bold).fontColor(this.selectedPayitem.value?#FFFFFF:item.color).width(48).height(48).textAlign(TextAlign.Center).borderRadius(24).backgroundColor(this.selectedPayitem.value?item.color:#F5F5F5)Radio({value:item.value,group:payGroup}).checked(this.selectedPayitem.value).onChange((c:boolean){if(c)this.selectedPayitem.value}).radioStyle({checkedBackgroundColor:item.color}).margin({top:8})}.padding(12).borderRadius(10).backgroundColor(this.selectedPayitem.value?item.color10:#FAFAFA).border({width:this.selectedPayitem.value?1.5:0,color:item.color,radius:10})})}.justifyContent(FlexAlign.SpaceEvenly).width(100%)}}.width(100%).padding(16).backgroundColor(CARD_BG_COLOR).borderRadius(12)}Text(支付方式单选卡片Radio 水平排列 - 卡片式水平布局).fontSize(12).fontColor(SUBTEXT_COLOR).margin({top:12})}.width(100%).height(100%).backgroundColor(PAGE_BG_COLOR).padding(16)}}我的小建议继续扩展的话我会把静态选项抽成接口返回的数据再补上空状态和异常状态。示例页面先把核心交互跑通就够了到了业务页面状态边界才是真正容易出问题的地方。

相关新闻

C++ Builder 12安装IOComp V4.04:工业通信组件集成与编译实战

C++ Builder 12安装IOComp V4.04:工业通信组件集成与编译实战

1. 项目概述:为什么要在C Builder 12中安装IOComp V4.04?如果你正在用C Builder 12开发工控、数据采集或者需要与各种工业硬件(比如PLC、传感器、运动控制卡)打交道的项目,那么你很可能听说过或者正在寻找IOComp这个组…

2026/7/21 23:52:18 阅读更多 →
Plotly柱状图三层渲染引擎与实战避坑指南

Plotly柱状图三层渲染引擎与实战避坑指南

1. 这不是一份“Plotly柱状图速查手册”,而是一线数据可视化工程师踩坑十年后整理的实战笔记你打开Plotly文档,翻到px.bar()那一页,参数密密麻麻列了二十多个:x,y,color,barmode,orientation,text_auto,hover_data,category_order…

2026/7/21 23:52:18 阅读更多 →
Nginx安全头配置实战:从原理到部署的Web安全加固指南

Nginx安全头配置实战:从原理到部署的Web安全加固指南

1. 项目概述:为什么Nginx安全头配置是Web安全的基石 最近在排查一个线上服务的安全扫描报告时,发现几个关于HTTP响应头的“低危”告警,比如缺少 X-Frame-Options 、 X-Content-Type-Options 等。起初没太在意,觉得这些都是“…

2026/7/21 23:52:18 阅读更多 →

最新新闻

RAG技术解析:大语言模型与知识检索的融合应用

RAG技术解析:大语言模型与知识检索的融合应用

1. RAG技术核心解析:当大语言模型遇上知识检索检索增强生成(Retrieval-Augmented Generation,简称RAG)正在重塑AI内容生成的技术范式。这项技术的本质是将大语言模型(LLM)的生成能力与精准的信息检索系统相…

2026/7/22 1:45:30 阅读更多 →
基于BERT与BiLSTM的智能论文降重系统设计与实践

基于BERT与BiLSTM的智能论文降重系统设计与实践

1. 项目背景与需求分析2025届毕业生面临的学术写作挑战中,论文查重是最令人头疼的问题之一。随着学术规范日益严格,各大高校对论文重复率的容忍度越来越低,部分985院校甚至将硕士论文的重复率门槛降至8%以下。传统的人工降重方式效率低下&…

2026/7/22 1:45:30 阅读更多 →
Agentic AI框架选型指南:从原型到生产的硬核拆解

Agentic AI框架选型指南:从原型到生产的硬核拆解

# Agentic AI框架选型指南:从原型到生产的硬核拆解## 一、背景:当框架数量超过模型数量时,我们该信谁?2026年的Agentic AI生态已经膨胀到令人窒息的地步——仅在Uvik Software的调研中,就覆盖了15个主流框架&#xff1…

2026/7/22 1:45:30 阅读更多 →
【高速缓存】RedisVL缓存 LLM 响应实践指南

【高速缓存】RedisVL缓存 LLM 响应实践指南

引言 在现代 AI 应用中,调用大语言模型(LLM)API 不仅会产生可观的费用,还会带来不可忽视的延迟。当用户反复提出相同或相似的问题时,每次都调用 LLM 无疑是一种浪费。语义缓存(Semantic Cache)正…

2026/7/22 1:45:30 阅读更多 →
Veo视频生成与Gemini Agent平台集成实践

Veo视频生成与Gemini Agent平台集成实践

# Veo视频生成与Gemini Agent平台集成实践## 一、背景:多模态Agent时代的视频生成瓶颈随着大模型从文本对话走向多模态推理,企业级Agent不再满足于“回答问题”或“生成文本”,而是需要具备**生成图像、音频、视频**的能力,以支撑…

2026/7/22 1:45:30 阅读更多 →
不确定性推理系统构建:从模糊逻辑到贝叶斯网络的智能决策实现

不确定性推理系统构建:从模糊逻辑到贝叶斯网络的智能决策实现

如果你正在寻找关于"矩阵陨落"或"虚构推理"的技术实现方案,可能会有些失望——因为这两个概念本身并不指向某个具体的技术框架或工具。但如果你关注的是如何用技术手段实现复杂的逻辑推理系统,或者想要构建能够处理模糊信息的智能应…

2026/7/22 1:44:28 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻