【HarmonyOS NEXT】一多开发介绍(断点、媒体查询、栅格布局)

news/2025/1/9 14:19:08/文章来源:https://www.cnblogs.com/luvi65/p/18662063

断点
鸿蒙提供断点以应用窗口宽度为切入点,将应用窗口在宽度维度上分成了几个不同的区间即不同的断点,不同设备会进入到不同的断点区间,在不同的区间下,我们可以可根据需要实现不同的页面布局效果。具体的断点对应的设备尺寸如下所示。

断点名称

取值范围(vp)

xs

[0, 320)

sm

[320, 600)

md

[600, 840)

lg

[840, +∞)

媒体查询
媒体查询支持监听窗口宽度、横竖屏、深浅色、设备类型等多种媒体特征,当媒体特征发生改变时同步调整页面布局。我们可以借助媒体查询能力,监听断点的变化。

栅格布局
栅格组件默认提供xs、sm、md、lg四个断点,除了默认的四个断点,还支持启用 xl 和 xxl 两个额外的断点,我们只需要在 GridRow() 组件的 breakpoints 属性中依次设置对应断点的尺寸,可自行对断点设备的尺寸进行设置从而满足自己尺寸的业务需求,当然还是更推荐使用默认的断点尺,如果使用到媒体查询,和自定义尺寸保持一致即可。

breakpoints 数组中最大可写 5 个尺寸,对应 6 个断点范围,且断点值后面必须加上vp单位。

reference 属性代表 GridRow 宽度变化随屏幕变化,还是随当前局部区域尺寸变化(因为在实际场景中,存在应用窗口尺寸不变但是局部区域尺寸发生了变化的情况,栅格组件支持以自身宽度为参照物响应断点变化具有更大的灵活性。)

栅格布局详细介绍请参考:文档中心

示例代码:

@Entry
@Component
struct GridRowSample1 {
@State private currentBreakpoint: string = 'unknown'
build() {
// 修改断点的取值范围同时启用更多断点,注意,修改的断点值后面必须加上vp单位。
GridRow({breakpoints: {value: ['600vp', '700vp', '800vp', '900vp', '1000vp'],
reference: BreakpointsReference.WindowSize}}) {
GridCol({span:{xs: 12, sm: 12, md: 12, lg:12, xl: 12, xxl:12}}) {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text(this.currentBreakpoint).fontSize(50).fontWeight(FontWeight.Medium)
}
}
}.onBreakpointChange((currentBreakpoint: string) => {
this.currentBreakpoint = currentBreakpoint
})
}
}

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

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

相关文章

公司台式机安转后无网络

网络连接 2025年1月9日 安装台式机,没有网卡,插办工作下有四根网线,我这台在用其中一个,新电脑试了剩下的三条,都不行,今天萧师傅讲了方法,让我试一下,“线都试一下”,解决了来记录一下。先把水晶头插入电脑,看哪个电脑能识别(要等一下,正在识别也是一个球),多试…

VA35计划协议清单增强

1、需求说明 本文档在VA35计划协议清单中加入了VBEP-RRQQTY_BU和VBEP-CRQQTY_BU两个字段, 实现的效果如下:2、实现过程 2.1、调试过程 鉴于这就是个普通的查询展示报表,所以先对VA35的源代码做了断点调试,很容易就找到了要展示的表为POSTAB断点调试找到表内容发生变化的位置…

IBM Storage - 支持AI应用场景的数据存储软硬件解决方案

为了解决数据和工作负载在各地分散的现状,需要实现对存储在分布式文件和对象存储系统中的大量非结构化数据的高速访问。IBM Storage利用人工智能(AI)、机器学习(ML)和高级分析手段,对数据存储基础架构进行现代化改造。概述为了解决数据和工作负载在各地分散的现状,需要实现对…

2025年度最佳开源免费项目管理软件:8款精选工具解析【全方位大合集】

项目管理对于企业和团队的成功至关重要。无论是大型企业还是小型创业团队,都需要高效的项目管理工具来提升工作效率、优化资源分配和确保项目按时交付。今天,我们将为大家介绍8款开源免费的项目管理软件,帮助您在众多选择中找到最适合自己团队的工具。这8款工具分别是禅道、…

『玩转Streamlit』--集成定时任务

学习了Streamlit了之后,可以尝试给自己的命令行小工具加一个简单的界面。 本篇总结了我改造自己的数据采集的工具时的一些经验。 1. 概要 与常规的程序相比,数据采集任务的特点很明显,比如它一般都是I/O密集型程序,涉及大量网络请求或文件读写,耗费的时间比较长;而且往往…

VUE +WebSocket+speak-tt 实现在浏览器右下角实时给商家推送订单消息

先看效果 1、WebSocket服务建立1.1 引入包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>1.2 新建配置类package com.ruoyi.web.core.config;import org.…

ASE65R180-ASEMI超洁MOS管ASE65R180

ASE65R180-ASEMI超洁MOS管ASE65R180编辑:ll ASE65R180-ASEMI超洁MOS管ASE65R180 型号:ASE100N10 品牌:ASEMI 封装:TO-220F 批号:最新 最大漏源电流:21A 漏源击穿电压:650V RDS(ON)Max:180mΩ 引脚数量:3 芯片个数: 沟道类型:P沟道MOS管、超洁MOS管 漏电流:ua 特性…

【搜索】DFS与BFS

99. 岛屿数量讲解:https://programmercarl.com/kamacoder/0099.岛屿的数量广搜.html#思路 DFS代码 #include <iostream> #include <cstring>using namespace std;const int N = 55;int n, m; int g[N][N]; bool st[N][N]; int dx[4] = {-1, 0, 1, 0}, dy[4] = {0,…

DFS与BFS专题

99. 岛屿数量讲解:https://programmercarl.com/kamacoder/0099.岛屿的数量广搜.html#思路 DFS代码 #include <iostream> #include <cstring>using namespace std;const int N = 55;int n, m; int g[N][N]; bool st[N][N]; int dx[4] = {-1, 0, 1, 0}, dy[4] = {0,…

Spinnaker

Spinnaker 是一个持续交付平台,它定位于将产品快速且持续的部署到多种云平台上。 Spinnaker 主要特性:配置一次,随时运行;随地部署,集中化管理;开源。 Spinnaker 组件:Spinnaker 最初是以实现内部的端到端持续交付为目标,作为 Asgard 的替代,该项目期望重建一个持续交…

Java基础学习(五)

Java基础学习(五):数组 目录Java基础学习(五):数组概念声明与创建初始化基本特点内存分析应用多维数组扩展内容Arrays 类冒泡排序稀疏数组 本文为个人学习记录,内容学习自 狂神说Java概念数组是相同类型数据的有序集合 每个数据称为一个数组元素,可以通过下标来访问声明…

CDS标准视图:付款锁定原因 I_PaymentBlockingReason

视图名称:付款锁定原因 I_PaymentBlockingReason 视图类型:基础视图 视图代码:点击查看代码 //Documentation about annotations can be found at http://help.sap.com searching for CDS annotations //Inserted by VDM CDS Suite Plugin @ObjectModel.usageType.sizeCateg…