当前位置: 首页 > news >正文

HarmonyOS NEXT仓颉开发语言实战案例:健身App

各位好,今日分享一个健身app的首页:

这个页面看起比之前的案例要稍微复杂一些,主要在于顶部部分,有重叠的背景,还有偏移的部分。重叠布局可以使用Stack容器实现,超出容器范围的偏移可以使用负数间距来实现,顶部部分的具体实现代码如下:

Column{Text('February').fontColor(Color.WHITE).fontSize(14)Row{Row{Image(@r(app.media.goal)).width(37).height(37)Text('MY GOAL').fontColor(Color.WHITE).fontSize(30).fontWeight(FontWeight.Bolder).margin(left:6)}Image(@r(app.media.cm_add)).width(28).height(28)}.margin(top:20).width(100.percent).justifyContent(FlexAlign.SpaceBetween).alignItems(VerticalAlign.Center)
}
.alignItems(HorizontalAlign.Start)
.padding(left:12,right:12,top:60)
.width(100.percent)
.height(220)
.linearGradient( direction: GradientDirection.Bottom, colors:[(Color(103, 76, 222, alpha: 1.0),0.0),(Color(129, 28, 219, alpha: 1.0),1.0)], repeating: false)
.borderRadius(bottomLeft: 20.vp, bottomRight: 20.vp)
Row{Column(5){Row(6){Text('weight').fontColor(Color.GRAY).fontSize(11)Image(@r(app.media.cm_down)).width(15).height(15)}.justifyContent(FlexAlign.Center).alignItems(VerticalAlign.Center).width(80).height(20).borderRadius(10).border(width: 1.vp, color: Color(216, 216, 216, alpha: 1.0), radius:10.vp,style: BorderStyle.Solid)Row(8){Image(@r(app.media.cm_js)).width(28).height(28)Column(5){Progress(value: 50.0, total: 100.0, `type`: ProgressType.Linear).width(100.percent).color(0x9570FF)Row{Text('250 lb').fontColor(Color.GRAY).fontSize(10)Text('250 lb').fontColor(Color.GRAY).fontSize(10)}.width(100.percent).alignItems(VerticalAlign.Center).justifyContent(FlexAlign.SpaceBetween)}.layoutWeight(1)}.width(100.percent)}.justifyContent(FlexAlign.Center).alignItems(HorizontalAlign.Start).padding(10).width(100.percent).height(80).borderRadius(10).backgroundColor(Color.WHITE)
}
.width(100.percent)
.height(80)
.margin(top:-50)
.padding(left:12,right:12)

剩余的部分是滚动的列表,而且有标题,所以使用List容器来实现,关于List标题的使用大家要多多熟悉:

@Builder func itemHead(text:String) {Row{Text(text).fontColor(Color.GRAY).fontSize(13)}.width(100.percent).height(35).alignItems(VerticalAlign.Center).padding(top:3,left:10)
}
ListItemGroup(ListItemGroupParams(header:{=>bind(this.itemHead,this)('THIS WEEK')})){
}

需要注意的是,列表的第一行是可以横向滚动的列表,我这里选择使用Scroll容器:

Scroll{Row(12){Stack(Alignment.Bottom){Image(@r(app.media.cm_s1)).width(124).height(155)Column(3){Text('WALKING LUNGES').fontColor(Color.WHITE).fontSize(13).fontWeight(FontWeight.Bold)Text('Today').fontSize(10).fontColor(Color.WHITE).backgroundColor(0x3EC7E6).height(16).width(68).borderRadius(8).textAlign(TextAlign.Center)}.alignItems(HorizontalAlign.Start).margin(bottom:8)}Stack(Alignment.Bottom){Image(@r(app.media.cm_s2)).width(124).height(155)Column(3){Text('WALKING LUNGES').fontColor(Color.WHITE).fontSize(13).fontWeight(FontWeight.Bold)Text('Today').fontSize(10).fontColor(Color.WHITE).backgroundColor(0x3EC7E6).height(16).width(68).borderRadius(8).textAlign(TextAlign.Center)}.alignItems(HorizontalAlign.Start).margin(bottom:8)}Stack(Alignment.Bottom){Image(@r(app.media.cm_s3)).width(124).height(155)Column(3){Text('WALKING LUNGES').fontColor(Color.WHITE).fontSize(13).fontWeight(FontWeight.Bold)Text('Today').fontSize(10).fontColor(Color.WHITE).backgroundColor(0x3EC7E6).height(16).width(68).borderRadius(8).textAlign(TextAlign.Center)}.alignItems(HorizontalAlign.Start).margin(bottom:8)}}.padding(left:12,right:12)
}
.height(155)
.width(100.percent)

最后一部分比较简单,和上面代码类似,就不再赘述了。

今天的内容就是这样,感谢阅读。##HarmonyOS语言##仓颉##休闲娱乐#

http://www.lryc.cn/news/576743.html

相关文章:

  • 野生动物检测数据集介绍-5,138张图片 野生动物保护监测 智能狩猎相机系统 生态研究与调查
  • rabbitmq springboot 有哪些配置参数
  • ONLYOFFICE 协作空间 企业版使用秘籍-8.使用虚拟数据房间,处理机密文档更安全
  • 生物实验室安全、化学品安全
  • MATLAB变音系统设计:声音特征变换(男声、女声、童声互转)
  • fvcom 网格文件grd制作
  • 日线周线MACD指标使用图文教程,通达信指标
  • 什么是零知识证明(Zero-Knowledge Proof, ZKP)
  • BF的数据结构题单-省选根号数据结构 - 题单 - 洛谷 计算机科学教育新生态
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序源码的用户价值对接机制研究
  • IDE/IoT/实践小熊派LiteOS工程配置、编译、烧录、调试(基于 bearpi-iot_std_liteos 源码)
  • 阿里云-接入SLS日志
  • 抗辐照芯片技术在商业卫星领域的应用与突破
  • C++ 第四阶段 STL 容器 - 第一讲:详解 std::vector
  • llama.cpp学习笔记:后端加载
  • M1芯片最终oracle成功版本拉取方法及配置
  • 【Linux庖丁解牛】— 文件系统!
  • JDK21 基于 Spring-AI 集成大模型实现聊天机器人
  • 【智能协同云图库】智能协同云图库第三弹:基于腾讯云 COS 对象存储—开发图片模块
  • Leetcode 3598. Longest Common Prefix Between Adjacent Strings After Removals
  • [database] Closure computation | e-r diagram | SQL
  • 【LeetCode 热题 100】560. 和为 K 的子数组——(解法二)前缀和+哈希表
  • swift-22-面向协议编程、响应式编程
  • SpringSecurity6-oauth2-三方gitee授权-授权码模式
  • 加密货币:USDC和比特币有什么区别?
  • web3区块链-ETH以太坊
  • 代理模式 - Flutter中的智能替身,掌控对象访问的每一道关卡!
  • aws(学习笔记第四十八课) appsync-graphql-dynamodb
  • Docker错误问题解决方法
  • Keil MDK 的 STM32 开发问题:重定向 printf 函数效果不生效(Keil MDK 中标准库未正确链接)