HarmonyOS7 支付方式单选卡片:用 FlexAlign.SpaceEvenly 做好支付选择
📅 2026/7/21 23:52:09
👁️ 次浏览
文章目录前言案例效果和学习目标从布局读到状态重点代码解释完整代码我的小建议前言这组案例开始进入选择类和调节类组件写业务页面时会经常遇到。这个案例围绕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)}}我的小建议继续扩展的话我会把静态选项抽成接口返回的数据再补上空状态和异常状态。示例页面先把核心交互跑通就够了到了业务页面状态边界才是真正容易出问题的地方。
1. 项目概述:为什么要在C Builder 12中安装IOComp V4.04?如果你正在用C Builder 12开发工控、数据采集或者需要与各种工业硬件(比如PLC、传感器、运动控制卡)打交道的项目,那么你很可能听说过或者正在寻找IOComp这个组…
📅 2026/7/21 23:52:09
1. 这不是一份“Plotly柱状图速查手册”,而是一线数据可视化工程师踩坑十年后整理的实战笔记你打开Plotly文档,翻到px.bar()那一页,参数密密麻麻列了二十多个:x,y,color,barmode,orientation,text_auto,hover_data,category_order…
📅 2026/7/21 23:52:09
1. 项目概述:为什么Nginx安全头配置是Web安全的基石 最近在排查一个线上服务的安全扫描报告时,发现几个关于HTTP响应头的“低危”告警,比如缺少 X-Frame-Options 、 X-Content-Type-Options 等。起初没太在意,觉得这些都是“…
📅 2026/7/21 23:52:09
1. 项目背景与核心价值解析《荣耀出征》作为一款经典的魔幻题材MMORPG,自上线以来凭借其宏大的世界观设定和丰富的社交玩法吸引了大量忠实玩家。这款游戏最显著的特点在于其"远征系统"——玩家需要组建团队挑战地下城、收集装备、培养角色,并通…
📅 2026/7/22 2:05:02
一句话结论:对于单项目、规格单一且仅需事后统计账面数据的团队,WPS协同表格具备极高的性价比;但对于多项目并行、材料规格上万种,且需要将采购计划、限额领料、跨项目调拨与项目成本实时挂钩的企业,必须依赖专业工程管…
📅 2026/7/22 2:05:02
Hermes Agent 配置:config.yaml 这样写,多模型、工具、权限一次理清 [!NOTE] 很多初学者把智能体当成“更会聊天的模型”,结果一上手就把文件、网络和高权限命令交出去。本篇围绕 配置管理 建立一套可复现的实践路径:先明确任务边界,再确认工具与权限,最后用日志和结果验…
📅 2026/7/22 2:05:02
1. 项目概述与技术选型这个全栈留言板项目采用了React作为前端框架,搭配Webpack进行模块打包,后端使用Node.jsExpress构建RESTful API服务。这种技术组合在当前Web开发领域非常典型,既能发挥React的组件化优势,又能利用Node.js的高…
📅 2026/7/22 2:05:02
1. ESXi 6.0安装前的关键准备工作 在开始安装ESXi 6.0之前,有几个关键步骤需要特别注意。首先需要确认你的硬件是否满足ESXi 6.0的最低要求。根据VMware官方文档,ESXi 6.0需要至少两个CPU核心(建议四个或更多)、4GB内存࿰…
📅 2026/7/22 2:05:02
1. 项目背景与核心价值在视觉内容创作领域,AIGC技术正经历从单模型生成到多模型协同的进化。传统单一模型方案存在三个显著痛点:风格局限性(单个模型通常专精于特定画风)、精度天花板(细节控制依赖模型固有能力&#x…
📅 2026/7/22 2:04:02
1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…
📅 2026/7/22 0:00:13
1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…
📅 2026/7/22 0:00:13
甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…
📅 2026/7/22 0:00:13
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/22 1:05:21
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/22 1:05:21
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/22 1:05:21
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/21 7:04:23
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/21 17:04:52
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/21 5:04:16