一次开发,多端部署--实例介绍

news2024/11/16 13:50:26

一、自适应布局

        1、拉伸能力

        容器组件尺寸发生变化时,增加或减小的空间全部分配给容器组件内指定区域。 

Row() {
    // 通过flexGrow和flexShrink属性,将多余的空间全部分配给图片,将不足的控件全部分配给两侧的空白区域
    Row().width(150)
        .flexGrow(0).flexShrink(1)
    Image($r("app.media.illustrator")).width(400)
        .flexGrow(1).flexShrink(0)
    Row.width(150)
        .flexGrow(0).flexShrink(1)
}

        2、均分能力

         容器组件尺寸发生变化时,增加或减小的空间均匀分配给容器组件内所有空白区域。

Column() {
    Row() {
        ForEach(this.list, (item,number) => {...})
    .width('100%')
    // 均分父容器主轴方向的剩余空间
    .justifyContent(FlexAlign.SpaceEvenly)
    // 同上Row
    Row() { ... }  
}
.width(this.rate * 100 + '%')      

 

        3、占比能力

        子组件的宽或高按照预设的比例,随容器组件发生变化。

Row() {
    Column() { ... }
    .layoutWeight(1) // 设置子组件在父容器主轴方向的布局权重
    Column() { ... }
    .layoutWeight(1) // 设置子组件在父容器主轴方向的布局权重
    Column() { ... }
    .layoutWeight(1) // 设置子组件在父容器主轴方向的布局权重
}
.width(this.rate * 100 + '%')

 

        4、缩放能力

        子组件的宽高按照预设的比例,随容器组件发生变化,且变化过程中子组件的宽高比不变。

Column() {
    Column() {
        Image($r("app.media.illustrator"))
        .width('100%').height('100%')
    }
    .aspectRatio(1) // 固定宽高比
}
.height(this.sliderHeight)
.width(this.sliderWidth)

        5、延伸能力

         容器组件内的子组件,按照其在列表中的先后顺序,随容器组件尺寸变化显示或隐藏。

Row({ space: 10 })
    // 通过list组件实现隐藏能力
    List({ space: 10 }) {...}
    .listDirection(Axis.Horizontal)
    .width('100%')
}
.width(this.rate * 100 +'%')

        6、隐藏能力

        容器组件内的子组件,按照其预设的显示优先级,随容器组件尺寸变化显示或隐藏。相同显示优先级的子组件同时显示或隐藏。

Row() {
    Image($r("app.media.favorite"))
        .displayPriority(1) // 布局优先级
    Image($r("app.media.down"))
        .displayPriority(2) // 布局优先级
    Image($r("app.media.pause"))
        .displayPriority(3) // 布局优先级
    Image($r("app.media.next"))
        .displayPriority(2) // 布局优先级
    Image($r("app.media.list"))
        .displayPriority(1) // 布局优先级
}
.width(this.rate * 100 + '%')

        7、折行能力

        容器组件尺寸发生变化时,如果布局方向尺寸不足以显示完整内容,自动换行。

Column() {
    // 通过flex组件wrap参数实现自适应折行
    Flex({
        wrap: FlexWrap.Wrap,
        direction: FlexDirection.Row
    }) {
        Foreach(this.list, (item: Resource) => {
            Image(item).width(183).height(138)
        })
    }
    .width(this.rate * 100 + '%')
}

二、响应式布局

        1、断点

        断点常用范围: 

断点名称取值范围(vp)
xs[0, 320)
sm[320, 600)
md[600, 840)
lg[840, +∞)

        2、栅格布局

        栅格组件将其所在的区域划分为有规律的多列,通过调整不同断点下的栅格组件的参数以及其子组件占据的列数等,实现不同的布局效果。

        

        

GridRow({
    columns:{ sm: 2, md: 8, lg: 12 },
    gutter: { x: '12vp' }
}) {
    GridCol({
        span: { sm: 4, md: 6, lg: 8 },
        offset: { sm: 8, ms: 1, lg: 2 }
    }) {
        Column() { ... }
    }
}

        (1)缩进布局

GridRow({
    columns:{ sm: 4, md: 8, lg: 12 },
    gutter: 24
}) {
    GridCol({
        span: { sm: 4, md: 6, lg: 8 },
        offset: { ms: 1, lg: 2 }
    }) {
        Column() { ... }.width('100%')
    }
}

         

         (2)挪移布局

GridRow({
    columns:{ sm: 4, md: 8, lg: 12 }
}) {
    GridCol({
        span: { sm: 4, md: 4, lg: 6 }
    }) { ... }
    GridCol({
        span: { sm: 4, md: 4, lg: 6 }
    }) { ... }
}.onBreakpointChange((breakpoint: string) => {
    this.currentBreakPoint = breakpoint
})

        

        (3)重复布局

GridRow({
    columns:{ sm: 4, md: 8, lg: 12 },
    gutter: 24
}) {
    ForEach(this.list, () => {
        GridCol({
            span: { sm: 4, md: 4, lg: 6 }
        }) { ... }
    })
}

        

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

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

相关文章

【代码随想录训练营第42期 Day57打卡 - 图论Part7 - Prim算法与Kruskal算法

目录 一、Prim算法 二、题目与题解 题目:卡码网 53. 寻宝 题目链接 题解1:Prim算法 题解2:Prim算法优化 题解3:Kruskal算法 三、小结 一、Prim算法与Kruskal算法 Prim算法是一种贪心算法,用于求解加权无向图的…

差分约束---将不等式转换为图的算法

概念:已知一个差分约束系统(差分约束系统即一种特殊的n元一次不等式组),形如,要求求出是否存在一组解使得所有约束条件满足。由于在最短路中与该不等式形式相似,因此,可以利用图论,从对应的j点连…

探索Web3前沿:革新性算力共享平台,重塑数字资源利用新时代

基于Web3的算力共享平台 随着区块链技术的不断发展和Web3.0时代的到来,算力共享平台逐渐成为推动数字经济和人工智能发展的重要力量。基于Web3的算力共享平台通过去中心化、分布式网络等技术手段,实现了算力的高效、透明和安全的共享,为人工智能、科学研究、艺术创作等多个…

Kamailio-基于Homer与heplify的SIP信令监控-1

接上篇Kamailio监控,对Kamailio的一个基础监控有了一定的概念,但是光看数字如果发现问题,要如何回顾解决呢?生产环境不能随时随地抓包来确定链路的正常与否。 这个时候 Sipcapture 公司推出了Homer这个开源软件,目前G…

【软件测试】常用的开发、测试模型

哈喽,哈喽,大家好~ 我是你们的老朋友:保护小周ღ 今天给大家带来的是 【软件测试】常用的开发、测试模型,首先了解, 什么是软件的生命周期, 测试的生命周期, 常见的开发模型: 瀑布, 螺旋, 增量, 迭代, 敏捷. 常用的测试模型, …

银河麒麟桌面系统卸载应用报错快速解决

银河麒麟桌面系统卸载应用报错快速解决 1、问题简述2、解决方案步骤 1: 删除dpkg信息步骤 2: 强制卸载步骤 3: 验证与清理 💖The Begin💖点点关注,收藏不迷路💖 1、问题简述 在银河麒麟桌面系统中卸载应用时,可能会遇…

AE 让合成重复循环播放

在合成上点右键 > Time > Enable Time Remapping 按住 Alt 键,点秒表图标 输入 loop_out("cycle", 0) 将子合成拖到此合成结束的位置 结束

Linux 上自动下载 Docker 依赖并离线安装的完整指南

Linux 上自动下载 Docker 依赖并离线安装的完整指南 文章目录 Linux 上自动下载 Docker 依赖并离线安装的完整指南一 添加软件源二 更新 yum 缓存三 下载依赖四 打包 rpm 文件五 离线安装 这篇指南详细讲解了如何在CentOS 7.9系统上,通过 yum命令自动下载Docker的所…

vue3使用leaflet+trackplayer实现非地图动画轨迹(市场平面图动态轨迹)

vue3使用leaflettrackplayer实现非地图动画轨迹(市场平面图动态轨迹) 先下载 leaflet 和 leaflet-trackplayer两个主要库 leaflet官方文档 npm install leaflet npm install leaflet-trackplayer然后在页面中引用 html <template><button click"playMap&quo…

LLM - 理解 多模态大语言模型 (MLLM) 的指令微调与相关技术 (四)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142063880 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 完备(F…

第 12 篇 Helm 部署 Redis

文章目录 Redis Chart部署 Redis 单机版部署 Redis 哨兵版第 1 步&#xff1a;准备 values.yaml 配置文件第 2 步&#xff1a;安装 bitnami/redis第 3 步&#xff1a;解决 Pod Pending 问题查看 Pod 状态添加 PV 持久化卷创建 pv1创建 pv2创建 pv3 查看 Pod 状态 第 4 步&#…

java实际开发——数据库存储金额时用什么数据类型?(MySQL、PostgreSQL)

目录 java开发时金额用的数据类型——BigDecimal MySQL存储金额数据时用的数据类型是——decimal PostgreSQL存储金额数据时用的数据类型是——decimal 或 money java开发时金额用的数据类型——BigDecimal https://blog.csdn.net/Jilit_jilit/article/details/142180903?…

传统Malmquist-Luenberger指数与全局Malmquist-Luenberger指数的区别

1.全局技术前沿的构建 1.1传统ML指数 技术前沿的时间依赖性 传统的Malmquist-Luenberger&#xff08;ML&#xff09;指数在每个时期&#xff08;例如年份&#xff09;单独构建各自的技术前沿。这意味着每个时期的生产可能性集合和技术效率都是基于该时期的数据。 不可比性问…

【包教包会】CocosCreator3.xSprite和Label渐变色(支持3.x、支持原生、可合批)

完美适配Web、原生平台&#xff08;其余平台没测过&#xff09;。 下载地址&#xff1a;水煮肉片饭/Palette3.x 如何导入自己项目&#xff1a; 1、将Demo中Palette.ts复制到自己项目assets目录下 2、新建一个Sprite或Label节点&#xff0c;将Palette组件挂上去 3、设置顶点…

openstack之glance介绍

概念 glance为nova提供镜像服务&#xff0c;用于启动实例&#xff0c;预建镜像已安装cloud-init&#xff0c;可以访问openstack基金会获取操作系统镜像&#xff1a;官方镜像 格式 raw&#xff1a;无格式的镜像&#xff1b; vhd&#xff1a;hyper-v使用的格式&#xff1b; vm…

arcgisPro地理配准

1、添加图像 2、在【影像】选项卡中&#xff0c;点击【地理配准】 3、 点击添加控制点 4、选择影像左上角格点&#xff0c;然后右击填入目标点的投影坐标 5、依次输入四个格角点的坐标 6、点击【变换】按钮&#xff0c;选择【一阶多项式&#xff08;仿射&#xff09;】变换 7…

数据结构(7.3_1)——二叉排序树

二叉排序树&#xff0c;又称二叉查找树(BST,Binary Search Tree) 一棵二叉树或者是空二叉树&#xff0c;或者是具有如下性质的二叉树&#xff1a; 左子树上所有结点的关键字均小于根结点的关键字&#xff1b;右子树上所有结点的关键字均大于根结点的关键字&#xff1b;左子树…

系统优化工具 | PC Cleaner v9.7.0.3 绿色版

PC Cleaner是一款功能强大的电脑清理和优化工具&#xff0c;旨在通过清理系统垃圾文件、解除恶意软件和优化系统性能来提高计算机的运行效率。该软件提供了多种功能&#xff0c;可以帮助用户维护和提升计算机的整体表现。 PC Cleaner 支持 Windows 7 及以上操作系统&#xff0…

餐饮+KTV点歌一体化思路-—SAAS本地化及未来之窗行业应用跨平台架构

一、餐饮KTV点歌一体化 1. 多元化体验&#xff1a;为顾客提供了餐饮和娱乐的双重享受&#xff0c;满足了不同需求&#xff0c;增加了顾客的停留时间和消费可能性。 2. 增加消费机会&#xff1a;顾客在享受美食的同时可以唱歌娱乐&#xff0c;可能会增加酒水、小吃等额外消费。…

【我的 PWN 学习手札】Unlink Attack

目录 前言 一、Unlink介绍 二、保护和限制 &#xff08;1&#xff09;FD->bk P AND BK->fd P &#xff08;2&#xff09;chunksize(P) prev_size(next_chunk(P)) &#xff08;3&#xff09;largebin chunk 三、适用场景 四、利用与绕过 &#xff08;1&#…