鴻蒙跨平臺開發教程之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開發鴻蒙的基礎布局方式,感謝您的閱讀。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79421.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79421.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79421.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaSE核心知識點02面向對象編程02-08(異常處理)

&#x1f91f;致敬讀者 &#x1f7e9;感謝閱讀&#x1f7e6;笑口常開&#x1f7ea;生日快樂?早點睡覺 &#x1f4d8;博主相關 &#x1f7e7;博主信息&#x1f7e8;博客首頁&#x1f7eb;專欄推薦&#x1f7e5;活動信息 文章目錄 JavaSE核心知識點02面向對象編程02-08&#…

【JVM-GC調優】

一、預備知識 掌握GC相關的VM參數&#xff0c;會基本的空間調整掌握相關工具明白一點&#xff1a;調優跟應用、環境有關&#xff0c;沒有放之四海而皆準的法則 二、調優領域 內存鎖競爭cpu占用io 三、確定目標 【低延遲】&#xff1a;CMS、G1&#xff08;低延遲、高吞吐&a…

基于單片機的電子法頻率計

一、電子計數法測頻率原理 通過門控控制閘門開關&#xff0c;閘門時間T自己設定&#xff0c;計數器計數脈沖個數N&#xff08;也就是待測信號&#xff09;&#xff0c;N個脈沖的時間間隔為δt,倒數即為信號的頻率f,由此 δtT/N fN/T——信號頻率 根據公式&#xff0c;如果考慮…

【C/C++】跟我一起學_C++同步機制效率對比與優化策略

文章目錄 C同步機制效率對比與優化策略1 效率對比2 核心同步機制詳解與適用場景3 性能優化建議4 場景對比表5 總結 C同步機制效率對比與優化策略 多線程編程中&#xff0c;同步機制的選擇直接影響程序性能與資源利用率。 主流同步方式: 互斥鎖原子操作讀寫鎖條件變量無鎖數據…

判斷兩臺設備是否在同一局域網內的具體方法

以下是判斷兩臺設備是否在同一局域網內的具體方法&#xff1a; 1. 檢查IP地址和子網掩碼 操作步驟&#xff1a; Windows系統&#xff1a; 按 Win R 鍵&#xff0c;輸入 cmd 并回車。輸入 ipconfig&#xff0c;查看 IPv4 地址 和 子網掩碼&#xff08;如 192.168.1.5/255.255.2…

在R語言中如何將列的名字改成別的

在 R 中&#xff0c;更改數據框&#xff08;data frame&#xff09;中列的名字可以通過多種方法實現。以下是幾種常見的方法&#xff1a; 方法 1&#xff1a;使用 names() 函數 names() 函數可以獲取或設置數據框的列名。 示例 假設我們有一個數據框 data&#xff1a; dat…

JUC并發編程(上)

一、JUC學習準備 核心知識點&#xff1a;進程、線程、并發&#xff08;共享模型、非共享模型&#xff09;、并行 預備知識&#xff1a; 基于JDK8,對函數式編程、lambda有一定了解 采用了slf4j打印日志 采用了lombok簡化java bean編寫 二、進程與線程 進程和線程概念 兩者對比…

單地平面6層PCB設計實戰:如何兼顧電源與信號完整性?

摘要&#xff1a;面對復雜系統&#xff08;SDRAM、WiFi、電機驅動等&#xff09;且僅有1層地平面的6層板設計挑戰&#xff0c;本文從層疊規劃、電源噪聲抑制、高速信號處理等角度&#xff0c;總結可落地的設計技巧與避坑指南。 一、層疊設計&#xff1a;6層板如何“擠”出最優布…

spark:map 和 flatMap 的區別(Scala)

場景設定 假設有一個包含句子的 RDD&#xff1a; scala val rdd sc.parallelize(List("Hello World", "Hi Spark")) 目標是&#xff1a;將每個句子拆分成單詞。 1. 用 map 的效果 代碼示例 scala val resultMap rdd.map(sentence > sentence…

基于VSCode+PlatformIO環境的ESP8266的HX1838紅外模塊

以下是針對ESP8266開發板的紅外遙控解碼系統開發教程&#xff0c;基于VSCodePlatformIO環境編寫 一、概述 本實驗通過ESP8266開發板實現&#xff1a; 紅外遙控信號解碼自定義按鍵功能映射串口監控輸出基礎設備控制&#xff08;LED&#xff09; 硬件組成&#xff1a; NodeMC…

Kubernetes排錯(十四):Pod狀態異常排查手冊

當你在凌晨三點收到告警&#xff0c;發現Pod在崩潰循環中掙扎時&#xff0c;如何快速定位問題&#xff1f;本文將為你梳理一套生產環境通用的Pod排錯流程&#xff0c;并附上救火隊員必備的實用命令清單&#xff01; 一、5分鐘快速定位&#xff1a;四步鎖定問題方向 步驟1&…

醫院藥品管理系統(準備工作)

準備工作 創建數據庫表 搭建Springboot框架 創建工程 定位maven 其他準備工作 創建數據庫表 建了九張表 搭建Springboot框架 創建工程 定位maven 把鏡像改為國內的 其他準備工作 安裝Lombok插件 額外添加依賴 如果添加依賴的過程中一直爆紅&#xff0c;可以刷新…

SpringBoot異步處理@Async深度解析:從基礎到高階實戰

一、異步編程基礎概念 1.1 同步 vs 異步 特性同步異步執行方式順序執行&#xff0c;阻塞調用非阻塞&#xff0c;調用后立即返回線程使用單線程完成所有任務多線程并行處理響應性較差&#xff0c;需等待前任務完成較好&#xff0c;可立即響應新請求復雜度簡單直觀較復雜&#…

簡單的強化學習舉例

1&#xff0c;定義獎勵函數 首先&#xff0c;需要根據具體的任務需求來定義獎勵函數。例如&#xff0c;對于機器人導航任務&#xff0c;可以根據機器人與目標點的距離來定義獎勵函數&#xff1a; import numpy as npdef navigation_reward(robot_position, target_position):…

css背景相關

背景書寫 background: url(src); // 注意&#xff1a;在寫動態樣式時&#xff0c;backgournd賦值格式錯誤&#xff0c;是不會在瀏覽器dom的style上顯示的 // 但是可以創建不可見的img&#xff0c;預加載來提高性能背景也會加載圖片資源 同img的src一樣&#xff0c;background也…

opencascade.js stp vite 調試筆記

Hello, World! | Op enCascade.js cnpm install opencascade.js cnpm install vite-plugin-wasm --save-dev 當你不知道文件寫哪的時候trae還是有點用的 ‘’‘ import { defineConfig } from vite; import wasm from vite-plugin-wasm; import rollupWasm from rollup/plug…

線程的一些事(2)

在java中&#xff0c;線程的終止&#xff0c;是一種“軟性”操作&#xff0c;必須要對應的線程配合&#xff0c;才能把終止落實下去 然而&#xff0c;系統原生的api其實還提供了&#xff0c;強制終止線程的操作&#xff0c;無論線程執行到哪&#xff0c;都能強行把這個線程干掉…

BGP實驗練習1

需求&#xff1a; 要求五臺路由器的環回地址均可以相互訪問 需求分析&#xff1a; 1.圖中存在五個路由器 AR1、AR2、AR3、AR4、AR5&#xff0c;分屬不同自治系統&#xff08;AS&#xff09;&#xff0c;AR1 在 AS 100&#xff0c;AR2 - AR4 在 AS 200&#xff0c;AR5 在 AS …

滑動窗口——將x減到0的最小操作數

題目&#xff1a; 這個題如果我們直接去思考方法是很困難的&#xff0c;因為我們不知道下一步是在數組的左還是右操作才能使其最小。正難則反&#xff0c;思考一下&#xff0c;無論是怎么樣的&#xff0c;最終這個數組都會分成三個部分左中右&#xff0c;而左右的組合就是我們…

C++ RAII機制

RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是一種編程范式&#xff0c;核心思想是&#xff1a;資源的生命周期與對象綁定——對象創建時獲取資源&#xff0c;對象銷毀時自動釋放資源。這種機制通過構造函數和析構函數的配對執行&#xff0c;確保資源…