零基础开始学习鸿蒙开发-基础页面的设计

目录

1.样例图

2.逐项分析

        2.1 头顶布局分析:首先我们要把第一行的图标绘制出来,一个左一个右,很明显,需要放在一个Row容器中,具体代码如下:

        2.2  和头像同一行的布局,需要注意的是,头像要绘制成圆角,使用 borderRadius方法调整即可,具体代码如下

        2.3  下面一行有四列,需要保持一致,所以,需要在Row中添加Column容器,保证里面的子项垂直排列。具体代码如下:

        2.4  剩下的布局即菜单布局,一共有6个,具体代码如下。

3.完整的页面布局代码如下:

4.最终页面的运行效果如下

5.如代码有不足之处,欢迎各位博友批评和指正,吾将虚心接受建议,共同改进和进步。


1.样例图

 cbc47eee07f34496aee3b6c8552d5f63.png

        1.1 我们拿到布局图片,比如这一张图是UI设计图,我们首先要分析一下布局, 可以简单的用visio或者word绘制一下草图,来确定整个页面的布局。

        1.2 从图片中不难看出,该布局为垂直布局。

2.逐项分析

        2.1 头顶布局分析:首先我们要把第一行的图标绘制出来,一个左一个右,很明显,需要放在一个Row容器中,具体代码如下:

 Row({space:250}){Row(){Column(){Image($r('app.media.settings')).width(30).height(30)}.justifyContent(FlexAlign.Start)}//设置水平左对齐Column(){Image($r('app.media.msg')).width(30).height(30)}.justifyContent(FlexAlign.End)//设置顶部对齐,并且设置顶部间距}

        2.2  和头像同一行的布局,需要注意的是,头像要绘制成圆角,使用 borderRadius方法调整即可,具体代码如下

  Column(){Row(){Column(){Row(){Column(){Image($r('app.media.avator')).width(50).height(50).borderRadius(50)}.margin({left:20}).borderRadius(50).backgroundColor('#FFFF')Column(){Text('超级用户:admin').fontColor(Color.White)Row(){Text('金融会员').fontColor(Color.White).fontSize(10)}.width(80).height(30)}}.width('70%')}.justifyContent(FlexAlign.Start)//设置水平左对齐Column(){Column(){Text('96.5').fontSize(20).fontColor(Color.Gray)Text('小白信用').fontColor(Color.Gray)}.backgroundColor(Color.White).width(70).height(70).borderRadius(50)/* Shape(){Circle({ width: 70, height: 70 }).fill(Color.White)}*/}.justifyContent(FlexAlign.Start).width('20%')}.width('100%')}

        2.3  下面一行有四列,需要保持一致,所以,需要在Row中添加Column容器,保证里面的子项垂直排列。具体代码如下:

  Row({space:60}){Column(){Image($r('app.media.signIn')).width(20).height(20)Text('签到')}Column(){Image($r('app.media.sun')).width(20).height(20)Text('早起打卡')}Column(){Image($r('app.media.lunar')).width(20).height(20)Text('日历')}Column(){Image($r('app.media.task')).width(20).height(20)Text('任务')}}.justifyContent(FlexAlign.Start).width('100%').margin({left:20})

        2.4  剩下的布局即菜单布局,一共有6个,具体代码如下。

 Column(){Row({space:150}){Column(){Row({space:5}){Image($r('app.media.cardIcon')).width(20).height(20)Text('卡包')}.alignItems(VerticalAlign.Top)}Column(){Text('银行卡、优惠券').fontColor('#ff706f6f')}}.height(10).width('100%').margin({left:30})Row().height(45)//账单设计Row(){Column(){Row({space:5}){Image($r('app.media.payment')).width(20).height(20)Text('账单')}.alignItems(VerticalAlign.Top)}}.height(10).width('100%').margin({left:30})Row().height(45)Row(){Column(){Row({space:80}){Column(){Row({space:5}){Image($r('app.media.memberCenter')).width(20).height(20)Text('会员中心')}.alignItems(VerticalAlign.Top)}Column(){Text('会员红包派对,约起!').fontColor('#ff706f6f')}}}}.height(10).width('100%').margin({left:30})Row().height(45)Row(){Column(){Row({space:180}){Column(){Row({space:5}){Image($r('app.media.myAsset')).width(20).height(20)Text('我的资产')}.alignItems(VerticalAlign.Top)}Column(){Text('9999.99').fontColor('#ff706f6f')}}}}.height(10).width('100%').margin({left:30})Row().height(45)Row(){Column(){Row({space:180}){Column(){Row({space:5}){Image($r('app.media.iou')).width(20).height(20)Text('我的白条')}.alignItems(VerticalAlign.Top)}Column(){Text('去开通').fontColor('#ff706f6f')}}}}.height(10).width('100%').margin({left:30})//间隔行Row().height(45)Row(){Column(){Row({space:5}){Image($r('app.media.collection')).width(20).height(20)Text('我的收藏')}.alignItems(VerticalAlign.Top)}}.height(10).width('100%').margin({left:30})}

3.完整的页面布局代码如下:

@Entry
@Component
struct Index {@State message: string = 'Hello World';build() {Row() {//垂直布局Column() {//设置 和消息设置在同一行  ,alignItems设置为顶部布局Column(){Row(){Row({space:250}){Row(){Column(){Image($r('app.media.settings')).width(30).height(30)}.justifyContent(FlexAlign.Start)}//设置水平左对齐Column(){Image($r('app.media.msg')).width(30).height(30)}.justifyContent(FlexAlign.End)//设置顶部对齐,并且设置顶部间距}}Row(){}.height(50)//第二行Column(){Row(){Column(){Row(){Column(){Image($r('app.media.avator')).width(50).height(50).borderRadius(50)}.margin({left:20}).borderRadius(50).backgroundColor('#FFFF')Column(){Text('超级用户:admin').fontColor(Color.White)Row(){Text('金融会员').fontColor(Color.White).fontSize(10)}.width(80).height(30)}}.width('70%')}.justifyContent(FlexAlign.Start)//设置水平左对齐Column(){Column(){Text('96.5').fontSize(20).fontColor(Color.Gray)Text('小白信用').fontColor(Color.Gray)}.backgroundColor(Color.White).width(70).height(70).borderRadius(50)/* Shape(){Circle({ width: 70, height: 70 }).fill(Color.White)}*/}.justifyContent(FlexAlign.Start).width('20%')}.width('100%')}}.width('100%').backgroundColor('#ff47ace3')Row(){}.height(20)//第三行Row({space:60}){Column(){Image($r('app.media.signIn')).width(20).height(20)Text('签到')}Column(){Image($r('app.media.sun')).width(20).height(20)Text('早起打卡')}Column(){Image($r('app.media.lunar')).width(20).height(20)Text('日历')}Column(){Image($r('app.media.task')).width(20).height(20)Text('任务')}}.justifyContent(FlexAlign.Start).width('100%').margin({left:20})Row(){}.height(10)Row(){}.height(2).width('95%').backgroundColor(Color.Gray)Row(){}.height(5)//用Column控制相同间隔Column(){Row({space:150}){Column(){Row({space:5}){Image($r('app.media.cardIcon')).width(20).height(20)Text('卡包')}.alignItems(VerticalAlign.Top)}Column(){Text('银行卡、优惠券').fontColor('#ff706f6f')}}.height(10).width('100%').margin({left:30})Row().height(45)//账单设计Row(){Column(){Row({space:5}){Image($r('app.media.payment')).width(20).height(20)Text('账单')}.alignItems(VerticalAlign.Top)}}.height(10).width('100%').margin({left:30})Row().height(45)Row(){Column(){Row({space:80}){Column(){Row({space:5}){Image($r('app.media.memberCenter')).width(20).height(20)Text('会员中心')}.alignItems(VerticalAlign.Top)}Column(){Text('会员红包派对,约起!').fontColor('#ff706f6f')}}}}.height(10).width('100%').margin({left:30})Row().height(45)Row(){Column(){Row({space:180}){Column(){Row({space:5}){Image($r('app.media.myAsset')).width(20).height(20)Text('我的资产')}.alignItems(VerticalAlign.Top)}Column(){Text('9999.99').fontColor('#ff706f6f')}}}}.height(10).width('100%').margin({left:30})Row().height(45)Row(){Column(){Row({space:180}){Column(){Row({space:5}){Image($r('app.media.iou')).width(20).height(20)Text('我的白条')}.alignItems(VerticalAlign.Top)}Column(){Text('去开通').fontColor('#ff706f6f')}}}}.height(10).width('100%').margin({left:30})//间隔行Row().height(45)Row(){Column(){Row({space:5}){Image($r('app.media.collection')).width(20).height(20)Text('我的收藏')}.alignItems(VerticalAlign.Top)}}.height(10).width('100%').margin({left:30})}}.width('100%').height('100%')}.height('100%')}}

4.最终页面的运行效果如下

65918266e55c46f1b0b08ff5bf55103c.png

5.如代码有不足之处,欢迎各位博友批评和指正,吾将虚心接受建议,共同改进和进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/64332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何用细节提升用户体验?

前端给用户反馈是提升用户体验的重要部分,根据场景选择不同的方式可以有效地提升产品的易用性和用户满意度。以下是常见的方法: 1. 视觉反馈 用户执行了某些操作后,需要即时确认操作结果。例如:按钮点击、数据提交、页面加载等。…

[数据结构#2] 图(1) | 概念 | 邻接矩阵 | 邻接表 | 模拟

图是由顶点集合及顶点间的关系(边)组成的数据结构,可用 G ( V , E ) G(V,E) G(V,E)表示,其中: 顶点集合 V V V: V { x ∣ x ∈ 某数据对象集 } V\{x|x\in\text{某数据对象集}\} V{x∣x∈某数据对象集},…

学习maven(maven 项目模块化,继承,聚合)

前言 本篇博客的核心:理解maven 项目模块化,继承,聚合 的含义 maven 项目模块化 含义 maven项目模块化:使用maven 构建项目,管理项目的方式,我们可以将maven项目根据内在的关系拆分成很多个小项目【模块】…

【OJ题解】最长回文子串

个人主页: 起名字真南的CSDN博客 个人专栏: 【数据结构初阶】 📘 基础数据结构【C语言】 💻 C语言编程技巧【C】 🚀 进阶C【OJ题解】 📝 题解精讲 目录 **题目链接****解题思路****1. 初步判断****2. 回文子串性质****3. 判断是…

EMQX 可观测性最佳实践

EMQX 介绍 EMQX 是一款开源、高度可伸缩、高可用的分布式 MQTT 消息服务器,同时也支持 CoAP/LwM2M 等一站式 IoT 协议接入。以下是 EMQX 的一些主要特点和功能: 海量连接与高并发:EMQX 能够处理千万级别的并发客户端,支持大规模…

kubeadm_k8s_v1.31高可用部署教程

kubeadm_k8s_v1.31高可用部署教程 实验环境部署拓扑图**署架构方案****Load Balance****Control plane node****Worker node****资源分配(8台虚拟机)**集群列表 前置准备关闭swap开启ipv4转发更多设置 1、Verify the MAC address and product_uuid are u…

mysql flink cdc 实时数据抓取

背景 通过监控mysql日志,获取表字段更新,用来做实时展示。 使用技术:Flink CDC Flink CDC 基于数据库日志的 Change Data Caputre 技术,实现了全量和增量的一体化读取能力,并借助 Flink 优秀的管道能力和丰富的上下游…

element plus el-select修改后缀图标

<el-selectv-model"value"placeholder"请选择工点"size"large":teleported"false":suffix-icon"CaretBottom"style"width: 100px"><el-optionv-for"item in options":key"item.value&quo…

自动驾驶控制与规划——Project 2: 车辆横向控制

目录 零、任务介绍一、环境配置二、算法三、代码实现四、效果展示 零、任务介绍 补全src/ros-bridge/carla_shenlan_projects/carla_shenlan_stanley_pid_controller/src/stanley_controller.cpp中的TODO部分。 一、环境配置 上一次作业中没有配置docker使用gpu&#xff0c;…

Qt6开发自签名证书的https代理服务器

目标&#xff1a;制作一个具备类似Fiddler、Burpsuit、Wireshark的https协议代理抓包功能&#xff0c;但是集成到自己的app内&#xff0c;这样无需修改系统代理设置&#xff0c;使用QWebengineview通过自建的代理服务器&#xff0c;即可实现https包的实时监测、注入等自定义功能…

Windows如何安装Php 7.4

一、进入官网&#xff0c;选择其他版本 https://windows.php.net/download/ 二、配置环境变量 将解压后的php 路径在系统环境变量中配置一下 cmd 后输入 php-v

ensp 静态路由配置

A公司有广州总部、重庆分部和深圳分部3个办公地点&#xff0c;各分部与总部之间使用路由器互联。广州、重庆、深圳的路由器分别为R1、R2、R3&#xff0c;为路由器配置静态路由&#xff0c;使所有计算机能够互相访问&#xff0c;实训拓扑图如图所示 绘制拓扑图 给pc机配置ip地址…

红米Note 9 Pro5G刷LineageOS

LineageOS介绍 LineageOS 是一个基于 Android 的开源操作系统&#xff0c;是面向智能手机和平板电脑等设备的替代性操作系统。它是 CyanogenMod 的继承者&#xff0c;而 CyanogenMod 是曾经非常受欢迎的一个第三方 Android 定制 ROM。 在 2016 年&#xff0c;CyanogenMod 项目因…

ECharts实现数据可视化入门详解

文章目录 ECharts实现数据可视化入门详解一、引言二、基础配置1.1、代码示例 三、动态数据与交互2.1、代码示例 四、高级用法1、多图表组合1.1、在同一容器中绘制多个图表1.2、创建多个容器并分别初始化 ECharts 实例1.3、实现多图联动 五、总结 ECharts实现数据可视化入门详解…

盲盒3.0版h5版-可打包app-新优化版紫色版

整体界面ui美观大气&#xff0c;盲盒项目也是一直比较热门的&#xff0c;各大平台一直自己也有做。 感兴趣的小伙伴可以搭建做自己的项目。盲盒项目的利润率还是很大的。

MacbookPro M1 安装Hive

前提注意⚠️⚠️⚠️ 1&#xff09;在安装Hive前确实需要安装MySQL&#xff0c;因为Hive可以使用MySQL作为元数据存储 2&#xff09;在安装Hive之前&#xff0c;需要先安装Hadoop。Hive是一个构建在Hadoop之上的数据仓库软件&#xff0c;它使用Hadoop的HDFS&#xff08;分布…

Crawl4AI:一个为大型语言模型(LLM)和AI应用设计的网页爬虫和数据提取工具实战

这里写目录标题 一、crawl4AI功能及简介1、简介2、特性 二、项目地址三、环境安装四、大模型申请五、代码示例1.生成markdown2.结构化数据 一、crawl4AI功能及简介 1、简介 Crawl4AI 是一个开源的网页爬虫和数据抓取工具&#xff0c;一个python项目&#xff0c;主要为大型语言…

游戏引擎学习第50天

仓库: https://gitee.com/mrxiao_com/2d_game Minkowski 这个算法有点懵逼 回顾 基本上&#xff0c;现在我们所处的阶段是&#xff0c;回顾最初的代码&#xff0c;我们正在讨论我们希望在引擎中实现的所有功能。我们正在做的版本是初步的、粗略的版本&#xff0c;涵盖我们认…

深度解读:Top14金融顶刊

作者Toby&#xff1a;来源&#xff1a;Python风控模型&#xff0c;Top14金融顶刊 各位同学好&#xff0c;我是Toby老师&#xff0c;今天为大家介绍金融风控领域的顶级学术期刊&#xff0c;用于小论文发布平台参考。 金融风控领域内有许多顶级学术期刊&#xff0c;它们发表高质…

数据库管理-第271期 Oracle 23ai:用MongoDB的方式来操作JSON二元性(20241214)

数据库管理271期 2024-12-14 数据库管理-第271期 Oracle 23ai&#xff1a;用MongoDB的方式来操作JSON二元性&#xff08;20241214&#xff09;1 初始化数据1.1 创建用户1.2 导入数据1.3 创建JSON关系二元性视图 2 创建ORDS服务2.1 下载JDK172.2 安装ORDS2.3 启用MongoDB API2.4…