当前位置: 首页 > 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.lqws.cn/news/564517.html

相关文章:

  • HarmonyOS NEXT仓颉开发语言实战案例:小而美的旅行App
  • [分布式并行] 流水线并行 PP(NaivePP/GPipe/F-then-B/PipeDream/1F1B)
  • MCPA2APPT 智能化演示文稿系统:A2A、MCP、ADK 三大架构全流程自动化
  • 区块链技术: 稳定币USDC的工作原理
  • 【八股消消乐】消息队列优化—消息丢失
  • python pyecharts 数据分析及可视化(2)
  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(三)- 职位数据统计分析
  • MAC 地址在 TCP 网络中的全面解析:从基础概念到高级应用
  • 【Redis原理】Redis事务与线程模型
  • StarRocks 3.5 新特性解读:Snapshot 快照恢复、大导入性能全面升级、分区管理更智能
  • opensuse/debian grub启动界面太模糊?
  • Wpf布局之WrapPanel面板!
  • 3.1.1、CAN总线单个设备环回测试
  • Git常见使用
  • WPF学习笔记(11)数据模板DataTemplate与数据模板选择器DataTemplateSelector
  • Mybatis学习总结
  • 鸿蒙5:自定义构建函数
  • 力扣第84题-柱状图中最大的矩形
  • Leetcode 3600. Maximize Spanning Tree Stability with Upgrades
  • Docker安装的gitlab配置ssl证书
  • 协作机器人优化自动化工作流程,提升工作效率
  • vue3报错No known conditions for “./lib/locale/lang/zh-cn”
  • HTML响应式Web设计
  • 链表题解——环形链表 II【LeetCode】
  • RK3588集群服务器性能优化案例:电网巡检集群、云手机集群、工业质检集群
  • Qwen2.5-7B-Instruct模型推理速度与量化对比分析
  • 【数据集】中国2016-2022年 城市土地利用数据集 CULU
  • 4_Flink CEP
  • 现代 JavaScript (ES6+) 入门到实战(四):数组的革命 map/filter/reduce - 告别 for 循环
  • Vue3 根据路由配置实现动态菜单