Premium 推广卡片:金色边框 + 阴影 + 立即开通按钮

发布时间:2026/7/19 0:33:50

Premium 推广卡片:金色边框 + 阴影 + 立即开通按钮
前言“海风日记“的“我的“页面中Premium 推广卡片以金色边框和阴影突出显示引导用户开通高级订阅。本文将从源码出发深入讲解 Premium 推广卡片的实现。一、Premium 卡片Row({ space: 16 }) { Column({ space: 4 }) { Row({ space: 6 }) { Text(✨).fontSize(16) Text(海风 Premium).fontSize(14).fontColor(#C8800A).fontWeight(FontWeight.Bold) } Text(解锁无限存储 · AI 周报 · 主题皮肤) .fontSize(12).fontColor(COLOR_TEXT_SECONDARY) } .layoutWeight(1).alignItems(HorizontalAlign.Start) Button(立即开通) .height(32).fontSize(13).fontColor(#FFFFFF).fontWeight(FontWeight.Bold) .backgroundColor(COLOR_PRIMARY).borderRadius(BTN_RADIUS_FULL) .padding({ left: 14, right: 14 }) .onClick(() { router.pushUrl({ url: pages/premium/PremiumPage }) }) } .padding(PAGE_PADDING) .backgroundColor(COLOR_CARD_BG) .borderRadius(CARD_RADIUS) .border({ width: 1, color: rgba(245,166,35,0.20) }) .shadow({ radius: 12, color: rgba(245,166,35,0.12), offsetY: 3 })二、设置菜单分组2.1 菜单数据interface MenuItemData { icon: Resource label: string url: string danger?: boolean } interface MenuGroup { title: string items: MenuItemData[] }2.2 菜单渲染ForEach(this.menuGroups, (group: MenuGroup) { Column({ space: 0 }) { Text(group.title).fontSize(12).fontColor(COLOR_TEXT_HINT) .padding({ left: PAGE_PADDING, bottom: 6 }) Column() { ForEach(group.items, (item: MenuItemData, idx: number) { Row({ space: 12 }) { SymbolGlyph(item.icon).fontSize(18).fontColor([item.danger ? #D06060 : COLOR_AMBER]) Text(item.label).fontSize(15) .fontColor(item.danger ? #D06060 : COLOR_TEXT_MAIN).layoutWeight(1) SymbolGlyph($r(sys.symbol.chevron_right)).fontSize(14).fontColor([COLOR_TEXT_HINT]) } .width(100%).height(50) .padding({ left: PAGE_PADDING, right: PAGE_PADDING }) .onClick(() router.pushUrl({ url: item.url })) }) } .backgroundColor(COLOR_CARD_BG).borderRadius(CARD_RADIUS) .shadow({ radius: 8, color: rgba(160,120,60,0.06), offsetY: 2 }) } })三、总结本文通过“海风日记“的 MineTab 设置菜单深入讲解了分组菜单的实现菜单分组数据接口定义ForEach 渲染分组 菜单项SymbolGlyph 图标每个菜单项点击跳转router.pushUrl危险项红色标识下一篇文章将深入讲解ProfileInfoPage 个人信息编辑敬请期待。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源ForEach 文档SymbolGlyph 文档Router 路由文档海风日记项目源码[HarmonyOS 开发者官网](https://atomgit.com/openharmony/docs开源鸿蒙跨平台社区

相关新闻

Claude 连不上数据库?MCP 服务器 30 分钟从零搭一个

Claude 连不上数据库?MCP 服务器 30 分钟从零搭一个

2026/7/19 0:33:50

14:00 痛点先摆在台面上 Claude 只能读写文件,连个数据库都查不了,这怎么当生产力工具? 我下午被这事儿卡了快二十分钟。想让 Claude 帮我跑一段用户留存分析,数据在远端,结果它一句"我没有数据库访问能力"把…

ngx_output_chain_as_is

ngx_output_chain_as_is

2026/7/19 0:33:50

1 定义 ngx_output_chain_as_is 函数 定义在 src/core/ngx_output_chain.cstatic ngx_inline ngx_int_t ngx_output_chain_as_is(ngx_output_chain_ctx_t *ctx, ngx_buf_t *buf) {ngx_uint_t sendfile;if (ngx_buf_special(buf)) {return 1;}#if (NGX_THREADS)if (buf->in_…

浏览器一次请求到底经历了什么?

浏览器一次请求到底经历了什么?

2026/7/19 0:33:50

我们每天都会在浏览器地址栏输入网址、点击链接,完成一次又一次的页面访问。看似简单的 “输入 - 回车 - 页面加载” 动作背后,是一条横跨网络协议、操作系统、浏览器内核、渲染引擎的完整技术链路,每一步环环相扣,共同决定了页面…

Android项目迁移中的编码与资源问题排查指南

Android项目迁移中的编码与资源问题排查指南

2026/7/19 3:04:04

1. 项目背景与问题概述那天早上9点,当我从GitHub上Clone下这个基于ADT(Android Development Tools)开发的MathsApp工程时,完全没想到接下来会经历一场长达15小时的马拉松式BUG排查。这个项目原本是在EclipseADT环境下开发的&#…

从理念到工程的鸿沟

从理念到工程的鸿沟

2026/7/19 3:04:04

llm wiki 理念的核心洞察是: RAG 每次查询从零推导,什么都不积累。LLM Wiki 预编译、持续维护,知识随时间复利。 理念很清晰,但从"用 LLM 维护一个 wiki"到"让 Agent 真正用上这个 wiki",中间有一…

C#中HttpClient的使用与最佳实践

C#中HttpClient的使用与最佳实践

2026/7/19 3:04:04

1. HTTP请求基础与C#中的实现方式在现代软件开发中,HTTP请求是实现客户端与服务器通信的基础手段。作为.NET开发者,我们通常使用HttpClient类来处理HTTP请求和响应。HttpClient首次出现在.NET Framework 4.5中,现已成为.NET Core和.NET 5/6/7…

HarmonyOS ArkUI RichEditor 富文本编辑器:内联样式、Span 管理与格式工具栏

HarmonyOS ArkUI RichEditor 富文本编辑器:内联样式、Span 管理与格式工具栏

2026/7/19 3:04:04

系列:鸿蒙 HarmonyOS 6.1 新特性实战 第 40 篇 RichEditor 是 ArkUI 提供的富文本编辑组件,支持在用户输入的同时对不同文字片段应用独立的颜色、字号、粗体等样式。与 TextInput 不同,RichEditor 的内容由多个“Span“组成,每个…

FastAPI OAuth2认证实现与安全实践

FastAPI OAuth2认证实现与安全实践

2026/7/19 3:04:04

1. FastAPI中的OAuth2认证机制解析在构建现代Web应用时,认证系统是保障数据安全的第一道防线。FastAPI作为高性能Python框架,提供了开箱即用的OAuth2支持。不同于传统的Session认证,OAuth2采用令牌(Token)机制,特别适合前后端分离…

及时做APP开发实战(十二)-LazyForEach懒加载优化实践

及时做APP开发实战(十二)-LazyForEach懒加载优化实践

2026/7/19 2:54:04

及时做APP开发实战(十二)-LazyForEach懒加载优化实践本文将详细介绍如何使用LazyForEach实现长列表懒加载,提升应用渲染性能。一、长列表性能问题 1.1 问题分析 【图1:ForEach vs LazyForEach】 ForEach渲染方式: ┌────────────…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/19 0:03:49

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/19 0:03:49

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/19 0:03:49

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/19 0:03:49

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/19 0:03:49

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/19 0:03:49

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…