当前位置: 首页 > news >正文

鸿蒙跨平台开发教程之Uniapp布局基础

前两天的文章内容对uniapp开发鸿蒙应用做了一些详细的介绍,包括配置开发环境和项目结构目录解读,今天我们正式开始写代码。

入门新的开发语言往往从Hello World开始,Uniapp的初始化项目中已经写好了一个简单的demo,这里就不再赘述,我们直接从布局开始说起。

Uniapp的布局方式和鸿蒙原生语言ArkTs有所不同,但又颇为神似。

幽蓝君之前总结过,所有的布局方式无非只有三种,横向、竖向和层叠,其他所有的布局方式都由这三种衍生而来,Uniapp也不例外。

ArkTs中有Row()、Column()、Stack()、Flex()这几个基础的布局容器组件,更复杂一些的还有像List()、Grid()、Scroll()等等。

而在Uniapp中,基础的布局方式我们通常直接使用view容器来实现。比如我想要实现一个横向的布局,使用view容器,在view的样式中设置布局方式为row:

<view style="display: flex;flex-direction: row;" ><view style="width: 100px;height: 100px;background-color: aqua;">组件1</view><view style="width: 100px;height: 100px;background-color:bisque;">组件2</view>
</view>

而到了纵向布局,只需要把布局方向设置column就行了:

<view style="display: flex;flex-direction: column;" ><view style="width: 100px;height: 100px;background-color: aqua;">组件1</view><view style="width: 100px;height: 100px;background-color:bisque;">组件2</view>
</view>

接下来比较难的部分到了,对于层叠布局,ArkTs直接提供了Stack()容器,并且有对应的对齐方式可以直接设置,比较简单。但是uniapp并没有提供这种对齐方式,flex-direction中是不能直接设置层叠布局的。

我们可以使用postion属性来实现。postion的作用是设置定位方式,有static、relative、fixed、absolute集中方式,我们今天要说的是absolute。

absolute是一种绝对定位方式,是脱离了文档流、相对于父元素的绝对定位方式。

更详细一点解释就是不管它有多少同级别的组件,都不影响它以父元素左上角为原点的定位,同样的它也不影响别人,相当于悬浮在上层,使用偏移量来控制位置。比如下面这段代码:

<view  style="display: flex;flex-direction: column;position: relative;" >
<view style="width: 50px;height: 50px;background-color:bisque;">组件1</view>
<view style="width: 50px;height: 50px;background-color:blue;">组件2</view>
<view style="width: 50px;height: 50px;background-color:brown;">组件3</view>
<view style="width: 100px;height: 100px;background-color: aqua;position: absolute;opacity: 0.5;align-items: center;">组件4</view>
</view>

所以如果需要层叠布局的两个容器都使用absolute定位,并且使用top、left、bottom、right来设置对齐方式,就实现了鸿蒙中的Stack()一样的功能:

<view class="content" style="display: flex;flex-direction: column;position: relative;" >
<view style="width: 100px;height: 100px;background-color: aqua;position: absolute;top: 0;">组件1</view>
<view style="width: 50px;height: 50px;background-color:bisque;position: absolute;z-index: 10;top: 0;">组件2</view>
</view>

这里可以使用z-index来设置谁在上一层,另外,绝对定位的父容器需要设置position: relative属性,否则子组件无法找到目标。

以上就是Uniapp开发鸿蒙的基础布局方式,感谢您的阅读。

相关文章:

  • WEBSTORM前端 —— 第2章:CSS —— 第8节:网页制作2(小兔鲜儿)
  • MySQL数据库的安全性防护
  • MinIO自定义权限策略语法深度解析
  • overleaf较高级的细节指令
  • 数据加密与隐私保护:让你的信息固若金汤
  • 【MySQL】行结构详解:InnoDb支持格式、如何存储、头信息区域、Null列表、变长字段以及与其他格式的对比
  • 【外网下载Jar包】
  • 基于ssm+mysql的树品种资源数据管理系统(含LW+PPT+源码+系统演示视频+安装说明)
  • C++入门小馆: 二叉搜索树
  • ARP协议
  • 婴幼儿托育实训室师资协同培养模式
  • 【深度学习】将本地工程上传到Colab运行的方法
  • LeetCode 热题 100 98. 验证二叉搜索树
  • vector 常见用法及模拟
  • 每日算法刷题 Day3 5.11:leetcode数组2道题,用时1h(有点慢)
  • 7系列 之 SelectIO 资源
  • redis存储结构
  • 【和春笋一起学C++】数组名作为函数参数实例
  • KaiwuDB 2.0:为 AIoT 而生,融合时序、关系与 AI 的未来数据库
  • 股指期货的保证金交易和资金门槛是多少?
  • 内塔尼亚胡:以军将在未来几天“全力进入”加沙
  • 专访|导演刘江:给谍战题材注入现实主义的魂
  • 超新星|罚丢点球的那道坎,刘诚宇靠自己迈了过去
  • 国际博物馆日中国主会场确定,北京将展“看·见殷商”等展览
  • 李公明 | 一周画记:印巴交火会否升级为第四次印巴战争?
  • “不为一时一事所惑,不为风高浪急所扰”——习近平主席对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典纪实