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

简介: 本文介绍了使用Uniapp开发鸿蒙应用的基础布局方式,对比了ArkTs与Uniapp在横向、纵向及层叠布局中的实现方法,重点讲解如何通过flex和position属性完成布局,并提供了示例代码与图示说明。

前两天的文章内容对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>

image.png

而到了纵向布局,只需要把布局方向设置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>

image.png

接下来比较难的部分到了,对于层叠布局,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>

image.png

所以如果需要层叠布局的两个容器都使用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>

image.png

这里可以使用z-index来设置谁在上一层,另外,绝对定位的父容器需要设置position: relative属性,否则子组件无法找到目标。
以上就是Uniapp开发鸿蒙的基础布局方式,感谢您的阅读。#鸿蒙三方框架##Uniapp##购物#

相关文章
|
网络协议 算法
WebSocket 技术详解
【2月更文挑战第12天】
612 1
|
JavaScript 前端开发
uniapp如何定义全局变量?
uniapp如何定义全局变量?
946 0
|
容器
uniapp中制作侧边导航栏
uniapp中制作侧边导航栏
1130 0
|
开发者
Uniapp开发鸿蒙应用时如何运行和调试项目
本文介绍了如何将Uniapp项目运行到鸿蒙设备并进行调试。内容包括运行到真机或模拟器的步骤、配置证书的方法、使用console.log打印日志以及在uni-app x项目中设置断点调试的详细流程,帮助开发者提升鸿蒙应用开发效率。
|
JavaScript 小程序 API
UniApp X:鸿蒙原生开发的机会与DCloud的崛起之路·优雅草卓伊凡
UniApp X:鸿蒙原生开发的机会与DCloud的崛起之路·优雅草卓伊凡
868 12
UniApp X:鸿蒙原生开发的机会与DCloud的崛起之路·优雅草卓伊凡
Uniapp开发鸿蒙购物应用教程之商品列表
本教程分享如何使用UniApp开发鸿蒙应用首页商品列表,通过网格布局实现商品分类与商品展示,详解布局方式与代码实现。
|
移动开发 JavaScript 前端开发
uniapp开发HarmonyOS NEXT应用之项目结构详细解读
本文介绍了uniapp项目目录结构,包括页面、静态资源、入口文件、配置文件等核心组成部分,并解析了各文件的作用与跨平台运行原理。
|
编解码 缓存 UED
【Uniapp 专栏】Uniapp 开发实战:打造高效页面布局技巧
【5月更文挑战第12天】在 Uniapp 开发中,高效页面布局关乎用户体验和应用性能。关键技巧包括:规划清晰的页面结构,利用 Flex 布局组件,精确控制元素尺寸和位置,实现响应式设计,保持布局简洁,优化加载性能,恰当运用色彩和字体,添加交互性动画,以及组织良好代码结构。通过不断学习和实践,开发者能创建出美观且高性能的页面,提升应用的整体质量。
805 5
|
移动开发 开发框架 小程序
uni-app:demo&媒体文件&配置全局的变量(三)
uni-app 是一个使用 Vue.js 构建多平台应用的框架,支持微信小程序、支付宝小程序、H5 和 App 等平台。本文档介绍了 uni-app 的基本用法,包括登录示例、媒体文件处理、全局变量配置和 Vuex 状态管理的实现。通过这些示例,开发者可以快速上手并高效开发多平台应用。
434 0
详解鸿蒙Next仓颉开发语言中的全屏模式
仓颉开发语言实现全屏模式教程:默认非全屏,需手动设置沉浸模式以占满屏幕。通过`setWindowLayoutFullScreen`开启全屏,并利用`getWindowAvoidArea`获取摄像头与导航条区域高度,结合AppStorage保存尺寸,适配界面布局,避免内容被遮挡。附屏幕尺寸获取方法及单位说明。