HarmonyOS 组件通用属性之位置设置

本文 我们来说 通用属性中的位置设置

主要是针对组件的对齐方式 布局方向 显示位置
做过WEB开发的 对流式布局应该都不陌生 就是 一行放内容 不够放就换行

我们可以先这样写

@Entry
@Component
struct Index {build() {Row() {Column() {Stack(){Text("你好")Text("html")Text("java")}.width('100%').height('100%')}.width('100%')}.height('100%')}
}

Stack是一个用来布局的组件
运行代码
在这里插入图片描述
会发现 所有内容重叠在一起了
这个时候 我们可以用一个属性 align 设置对齐方式

我们直接在元素下面 输入 .align(Alignment.); 就会弹出对齐方式的提示
在这里插入图片描述
比较明显的 top center bottom
上中下 起始点的提示

我们先来个top
但我们要 TopStart
这样 内容就顶到左上角去了
在这里插入图片描述
如果是 top 会在顶部 但会居中
在这里插入图片描述
TopEnd 简单说 右上角对齐
在这里插入图片描述
然后 直接 Start
简单说 水平左对齐 垂直居中
在这里插入图片描述
BottomStart 左下角
在这里插入图片描述
其他几个也基本都是一个意思
center 就是双方向居中
也就是 默认这个效果
在这里插入图片描述
然后 我们来看下一个属性 我们改写代码如下

@Entry
@Component
struct Index {build() {Row() {Column() {Row(){Text("你好")Text("html")Text("java")}.width('100%').height('100%')}.width('100%')}.height('100%')}
}

先用 Row 元素
在这里插入图片描述
我们还是 在元素下面 加上 .direction(Direction.) 就会弹出它的属性提示了
在这里插入图片描述
Auto 就是 自动 也是它的默认值
Ltr 这个简单说 从左至右 也是默认的这个效果
Rtl 从右至左 我们加上 他就反过来了
在这里插入图片描述
然后 来看 position
学习过 WEB端的定位的朋友 看到这个会比较熟悉
我们将代码改成这样

@Entry
@Component
struct Index {build() {Row() {Column() {Row(){Text("你好")Text("html")Text("java")}.width('100%').height('100%')}.width('100%')}.height('100%')}
}

一个行容器 Row 里面放了多个 Text组件
在这里插入图片描述
我们可以这样写

Row(){Text("你好").position({x: 0,y: 0})Text("html").position({x: 30,y: 20})Text("java").position({x: "70%",y: "50%"})
}.width('100%')
.height('100%')

鸿蒙的 position也是定位语法 他是 x y两个轴方向控制 针对自己的父元素
例如 Text(“你好”).position({x: 0,y: 0})
x 0 就是 最左边 y 0就是最上面 所以这个元素就在左上角
然后 从第三个可以看出 我们这个是可以用百分比的
它的位置是相对父元素的
在这里插入图片描述
markAnchor 这个是相对于自身的
我们先将代码改成这样

@Entry
@Component
struct Index {build() {Row() {Column() {Stack({alignContent: Alignment.TopStart}){Text("你好")Text("html")Text("java")}.width('100%').height('100%')}.width('100%')}.height('100%')}
}

我们用个 Stack 设置 TopStart 让全部元素到 左上角
在这里插入图片描述
我们可以这样写

Stack({alignContent: Alignment.TopStart}){Text("你好").markAnchor({x: 0,y: 0})Text("html").markAnchor({x: -20,y: -30})Text("java").markAnchor({x: -10,y: -50})
}.width('100%')
.height('100%')

这个markAnchor 它是相对于自己去移动的 说个词 相对定位 当然 它不会留自己原来的位置 但是 它是相对自己原来的位置 移动的 而且 它的 x y是反的 x 正值向左 负值向右 y正值向上 负值向下
在这里插入图片描述
最后一个 offset
我们可以先这样写

@Entry
@Component
struct Index {build() {Row() {Column() {Row(){Text("你好").width(100)Text("html").width(100)Text("java").width(100)}.width('100%').height('100%')}.width('100%')}.height('100%')}
}

在这里插入图片描述
然后 我们给子元素都设置 offset

 Row(){Text("你好").width(100).offset({x: 0,y: 0})Text("html").width(100).offset({x: 0,y: 0})Text("java").width(100).offset({x: 0,y: 0})
}.width('100%')
.height('100%')

我们会发现 并没有什么明显的效果
在这里插入图片描述
但我们改一改
将第二个的 x 改 50 你会发现 它自己会相对位移 但他不会影响其他元素 自己动
在这里插入图片描述
你把 y改一下 会发现一个很奇葩的事
x是正的 正右 负左 y轴 反的 正下 负上
在这里插入图片描述

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

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

相关文章

让人头痛事务问题到底要如何解决?

前言 正好前段时间我在公司处理过这个问题,我们当时由于项目初期时间比较紧张,为了快速完成业务功能,忽略了系统部分性能问题。项目顺利上线后,专门抽了一个迭代的时间去解决大事务问题,目前已经优化完成,并…

JDBC练习查询所有内容

MySql表代码 -- 删除tb_brand表 drop table if exists tb_brand; -- 创建tb_brand表 create table tb_brand (-- id 主键id int primary key auto_increment,-- 品牌名称brand_name varchar(20),-- 企业名称company_name varchar(20),-- 排序字段ordered int…

如何在Docker环境下安装火狐浏览器并结合内网穿透工具实现公网访问

文章目录 1. 部署Firefox2. 本地访问Firefox3. Linux安装Cpolar4. 配置Firefox公网地址5. 远程访问Firefox6. 固定Firefox公网地址7. 固定地址访问Firefox Firefox是一款免费开源的网页浏览器,由Mozilla基金会开发和维护。它是第一个成功挑战微软Internet Explorer浏…

nginx 二、配置域名

文章目录 一、配置本地域名查看虚拟机ip修改hosts文件测试域名是否配置成功 二、配置aliyun域名三、实践1.创建html2.配置nginx3.测试服务器内部测试页面测试 总结 docker中启动nginx容器完成如下操作,对于docker安装nginx可以看这篇文章 nginx 一、安装与conf浅析 …

Java集合框架深度解析-ArrayList

Java的集合框架提供了一组实现常用数据结构的类和接口。理解集合框架对于Java程序员来说至关重要,因为它们在日常编程中广泛应用。 为什么需要集合框架? 在编程中,我们经常需要存储和操作一组对象。集合框架提供了用于表示和操作对象组的通…

docker部署mysql主从复制篇

环境准备:docker服务安装,mysql镜像 配置文件方式:可以挂载目录,也可以写好配置文件,利用docker cp 到容器内,这里直接在启动镜像创建容器时候挂载目录方式服务器上配置文件内容(下图标红路径)&#xff1a…

医院信息系统集成平台—数据交换层

医院集成平台核心是数据交换总线,这解决当前大部分医院最关注的电子病历与移动医疗等业务系统接口交互共享及消息数据状态同步(消息一体化机制)等问题。集成平台主要包括业务数据集并提供相应的标准处理接口API(含数据采集与数据发布查询更新),同时提供相应的适配器服务来…

【Android】自定义View组件,并实现在 Compose、Kotlin、Xml 中调用

从事 Android 开发以来,很少有过自定义 View 的相关开发需求,大部分 UI 都是可以集成某些官方组件,在组件的基础上完成能够大大缩短开发时间。但今天我要讲的是:如何使用 Android 开发一个Compose、Xml都可以调用的组件&#xff1…

Spring Boot 整合 Knife4j(快速上手)

关于 Knife4j 官方文档:https://doc.xiaominfo.com/ Knife4j是一个基于Swagger的API文档生成工具,它提供了一种方便的方式来为Spring Boot项目生成在线API文档。Knife4j的特点包括: 自动化生成:通过Swagger注解,Kn…

【第七在线】智能商品系统是否可以帮助预测新品的销售表现?

智能商品系统在鞋服企业商品运营中的应用已经成为一种趋势。随着技术的发展和数据的积累,智能化已经成为企业提高运营效率和市场竞争力的重要手段。其中,智能商品系统通过对大量销售数据的分析,可以帮助预测新品的销售表现,为企业…

【git使用】一个非常适合新手的代码管理方法——master/develop模型

生产/开发模型【支持master/develop 类型分支】 1.gitee、github创建仓库2.使用sourcetree拉取仓库3. 检出develop分支,并初始化工作流4.模拟日常开发流程5.具备发布条件,进行发布6.将master和develop分支的版本都推送到远程仓库7.继续循环4-5-6进行开发…

服务器CentOs8 安装RocketMQ 4.9.4

前置条件 安装好java环境 下载、上传、解压 下载二进制包 传送门 上传到服务器,这里上传到了/usr/local目录下 解压: unzip rocketmq-all-4.9.4-bin-release.zip移动到新的文件夹 mv /rocketmq-all-4.9.4-bin-release /rocketmq修改配置 修改conf下…