约束布局 ConstraintLayout
鸿蒙操作系统(HarmonyOS)是华为公司自主研发的面向全场景的分布式操作系统,旨在为用户提供流畅、安全、可靠的智能生活体验。随着鸿蒙操作系统的不断发展和完善,越来越多的开发者开始关注并投入到鸿蒙应用开发中来。对于想要深入理解鸿蒙开发的开发者来说,掌握ArkUI布局方式是必不可少的一环。
ArkUI是一种基于声明式编程范式的用户界面框架,它简化了UI开发流程,使得开发者能够更加专注于构建功能丰富且交互良好的应用程序。在鸿蒙系统中,ArkUI支持多种布局模式,如线性布局(LinearLayout)、相对布局(RelativeLayout)、网格布局(GridLayout)、约束布局(ConstraintLayout)等,每种布局都有其特点和适用场景。
线性布局 LinearLayout
线性布局是最简单的布局之一,它将子元素按照垂直或水平方向排列。以下是一个使用线性布局的例子:
```xml
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:orientation="vertical">
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Hello, HarmonyOS!"
ohos:text_size="50fp"/>
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Click Me"
ohos:text_size="30fp"/>
```
相对布局 RelativeLayout
相对布局允许你根据父容器或其他子元素的位置来定位子元素。这提供了更大的灵活性来创建复杂的UI布局。下面是一个相对布局的例子:
```xml
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent">
ohos:id="$+id:text1"
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Top Left Text"
ohos:top_margin="20vp"
ohos:left_margin="20vp"/>
ohos:id="$+id:text2"
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Bottom Right Text"
ohos:bottom_margin="20vp"
ohos:right_margin="20vp"
ohos:relative_to="parent"
ohos:alignment="bottom_right"/>
```
网格布局 GridLayout
网格布局将屏幕空间划分为行和列,并允许你将组件放置在指定的行列交点上。这对于创建表格或者需要规则排列的项目非常有用。下面是一个网格布局的例子:
```xml
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:column_count="3"
ohos:row_count="2">
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Grid Item 1"/>
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Grid Item 2"/>
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Grid Item 3"/>
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Grid Item 4"/>
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Grid Item 5"/>
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Grid Item 6"/>
```
约束布局 ConstraintLayout
约束布局提供了一种强大而灵活的方式来定义视图之间的关系,通过设置约束条件可以实现复杂多变的布局效果。它还支持链式布局和比例布局等功能,以适应不同尺寸的屏幕。下面是一个约束布局的例子:
```xml
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent">
ohos:id="$+id:textStart"
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Start Text"
ohos:layout_constraint_start_toStartOf="parent"
ohos:layout_constraint_top_toTopOf="parent"/>
ohos:id="$+id:textEnd"
ohos:height="match_content"
ohos:width="match_content"
ohos:text="End Text"
ohos:layout_constraint_end_toEndOf="parent"
ohos:layout_constraint_bottom_toBottomOf="parent"/>
ohos:id="$+id:buttonCenter"
ohos:height="match_content"
ohos:width="match_content"
ohos:text="Center Button"
ohos:layout_constraint_horizontal_bias="0.5"
ohos:layout_constraint_vertical_bias="0.5"
ohos:layout_constraint_top_toTopOf="parent"
ohos:layout_constraint_bottom_toBottomOf="parent"
ohos:layout_constraint_start_toStartOf="parent"
ohos:layout_constraint_end_toEndOf="parent"/>
```
除了上述布局之外,ArkUI还支持其他高级特性,比如动画、过渡效果、自定义组件等,这些都可以大大增强应用的视觉表现力和用户体验。在实际开发过程中,开发者应该根据具体需求选择合适的布局策略,并充分利用ArkUI所提供的工具和技术来优化UI设计。
此外,鸿蒙系统鼓励开发者采用响应式设计原则,即创建能够适应各种屏幕尺寸和分辨率的应用程序。为了达到这个目标,开发者需要了解如何利用ArkUI提供的适配机制,例如使用弹性盒子(Flexbox)进行布局,以及运用百分比单位、自动填充(wrap_content)和匹配父级(match_parent)等属性值。
最后,值得注意的是,鸿蒙系统的快速迭代意味着开发者需要持续跟进官方文档和技术博客,保持对最新特性和最佳实践的学习。同时,积极参与社区交流也是不可或缺的一部分,通过与其他开发者的互动可以获得宝贵的经验分享和技术支持。
相关文章:
约束布局 ConstraintLayout
鸿蒙操作系统(HarmonyOS)是华为公司自主研发的面向全场景的分布式操作系统,旨在为用户提供流畅、安全、可靠的智能生活体验。随着鸿蒙操作系统的不断发展和完善,越来越多的开发者开始关注并投入到鸿蒙应用开发中来。对于想要深入理…...
校园商铺管理系统设计与实现(代码+数据库+LW)
摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自…...
react native在windows环境搭建并使用脚手架新建工程
截止到2024-1-11,使用的主要软件的版本如下: 软件实体版本react-native0.77.0react18.3.1react-native-community/cli15.0.1Android Studio2022.3.1 Patch3Android SDKAndroid SDK Platform 34 35Android SDKAndroid SDK Tools 34 35Android SDKIntel x…...
vulnhub DC-1靶机 walkthrough
描述 DC-1 是专门为获得渗透测试经验而建造的易受攻击实验室。 它旨在成为初学者的挑战,但其难易程度取决于您的技能和知识以及学习能力。 要成功完成此挑战,您需要具备 Linux 技能、熟悉 Linux 命令行以及使用基本渗透测试工具的经验,例如 …...
计算机网络 (58)无线局域网WLAN
前言 无线局域网WLAN(Wireless Local Area Network)是一种利用无线通信技术将计算机设备互联起来,构成可以互相通信和实现资源共享的网络体系。 一、定义与特点 定义: WLAN通过无线信道代替有线传输介质连接两个或多个设备形成一个…...
基于物联网的风机故障检测装置的设计与实现
1 系统总体设计方案 通过对风机故障检测装置的设计与实现的需求、可行性进行分析,本设计风机故障检测装置的设计与实现的系统总体架构设计如图2-1所示,系统风机故障检测装置采用STM32F103单片机作为控制器,并通过DS18B20温度传感器、ACS712电…...
【AI日记】25.01.25
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 AI kaggle 比赛:Forecasting Sticker Sales 读书 书名:法治的细节 律己 AI:8 小时,良作息:00:30-8:30, 良短视频&…...
Sourcetree:一款高效便捷的Git版本控制客户端
Sourcetree:一款高效便捷的Git版本控制客户端 引言 在软件开发领域,版本控制是确保代码质量和项目进度的关键工具。Git作为当前最流行的版本控制系统,已经广泛应用于各类项目中。而Sourcetree作为Git的图形化界面客户端,凭借其易…...
图像处理算法研究的程序框架
目录 1 程序框架简介 2 C#图像读取、显示、保存模块 3 C动态库图像算法模块 4 C#调用C动态库 5 演示Demo 5.1 开发环境 5.2 功能介绍 5.3 下载地址 参考 1 程序框架简介 一个图像处理算法研究的常用程序逻辑框架,如下图所示 在该框架中,将图像处…...
GitLab配置免密登录和常用命令
SSH 免密登录 Windows免密登录 删除现有Key 访问目录:C:\Users\Administrator\ .ssh,删除公钥:id_rsa.pub ,私钥:id_rsa 2.生成.ssh 秘钥 运行命令生成.ssh 秘钥目录( ssh-keygen -t rsa -C xxxxxx126.…...
Chameleon(变色龙) 跨平台编译C文件,并一次性生成多个平台的可执行文件
地址:https://github.com/MartinxMax/Chameleon Chameleon 跨平台编译C文件,并一次性生成多个平台的可执行文件。可以通过编译Chameleon自带的.C文件反向Shell生成不同平台攻击载荷。 登录 & 代理设置 按照以下步骤设置 Docker 的代理: 创建配置目…...
第十四讲 JDBC数据库
1. 什么是JDBC JDBC(Java Database Connectivity,Java数据库连接),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系型数据库,并使用SQL语句来完成对数据库中数据的查询、新增、更新和删除等操作…...
“AI教学实训系统:打造未来教育的超级引擎
嘿,各位教育界的伙伴们,今天我要跟你们聊聊一个绝对能让你们眼前一亮的教学神器——AI教学实训系统。作为资深产品经理,我可是亲眼见证了这款系统如何颠覆传统教学,成为未来教育的超级引擎。 一、什么是AI教学实训系统?…...
java读取设置pdf属性信息
pom <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version> </dependency>读取属性 import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmod…...
C语言内存管理详解
C语言不像其他高级语言那样提供自动内存管理,它要求程序员手动进行内存的分配和释放。在C语言中,动态内存的管理主要依赖于 malloc、calloc、realloc 和 free 等函数。理解这些函数的用法、内存泄漏的原因及其防止方法,对于编写高效、可靠的C…...
mysql从全备文件中提取单库或单表进行恢复——筑梦之路
前提条件 与业务确认涉及业务、数据库IP、数据误删除时间点、数据删除涉及的SCHEMA、数据表,确认该数据库为MySQLdump备份方式,备份策略为每日凌晨1点进行数据库全备份,备份保留7天,业务误删除数据时间点为当日10点左右࿰…...
HTML-新浪新闻-实现标题-排版
标题排版 图片标签:<img> src:指定图片的url(绝对路径/相对路径) width:图片的宽度(像素/相对于父元素的百分比) heigth:图片的高度(像素/相对于父元素的百分比&a…...
【前沿聚焦】机器学习的未来版图:从自动化到隐私保护的技术突破
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...
二叉树的最大深度(C语言详解版)
一、摘要 嗨喽呀大家,leetcode每日一题又和大家见面啦,今天要讲的是104.二叉树的最大深度,思路互相学习,有什么不足的地方欢迎指正!好啦让我们开始吧!!! 二、题目简介 给定一个二…...
基于dlib/face recognition人脸识别推拉流实现
目录 一.环境搭建 二.推拉流代码 三.人脸检测推拉流 一.环境搭建 1.下载RTSP服务器MediaMTX与FFmpeg FFmpeg是一款功能强大的开源多媒体处理工具,而MediaMTX则是一个轻量级的流媒体服务器。两者结合,可以实现将本地视频或者实时摄像头画面推送到RTSP流,从而实现视频…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
