HarmonyOS UI 開發

来源:https://www.cnblogs.com/depeng8899/archive/2023/11/01/17804079.html
-Advertisement-
Play Games

HarmonyOS 提供了強大的 UI 開發工具和組件,使開發者能夠創建吸引人的用戶界面。本章將詳細介紹在 HarmonyOS 中應用 JS、CSS、HTML,HarmonyOS 的 UI 組件以及如何自定義 UI 組件。 ...


引言

HarmonyOS 提供了強大的 UI 開發工具和組件,使開發者能夠創建吸引人的用戶界面。本章將詳細介紹在 HarmonyOS 中應用 JS、CSS、HTML,HarmonyOS 的 UI 組件以及如何自定義 UI 組件。

目錄

  1. JS、CSS、HTML 在 HarmonyOS 中的應用
  2. HarmonyOS 的 UI 組件
  3. 自定義 UI 組件
  4. 總結

1. JS、CSS、HTML 在 HarmonyOS 中的應用

當在 HarmonyOS 中進行應用開發時,你可以使用 JavaScript(JS)、CSS 和 HTML 來構建用戶界面和處理應用的邏輯。以下是關於在 HarmonyOS 中使用這些技術的詳細講解:

1. JavaScript(JS)的應用

JavaScript 是一種常用的腳本語言,它在 HarmonyOS 中用於處理應用的邏輯和交互。以下是在 HarmonyOS 中使用 JavaScript 的一些關鍵方面:

  • 事件處理: 你可以使用 JavaScript 來添加事件處理程式,例如點擊按鈕時觸發的事件。通過監聽用戶的交互動作,你可以執行相應的操作,例如更改界面內容、發送網路請求等。
// 示例:當按鈕被點擊時,彈出提示框
button.addEventListener("click", function() {
  console.log("按鈕被點擊了!");
});
  • 數據操作: JavaScript 可以用於處理數據,包括存儲、檢索和更新數據。你可以使用 JavaScript 來創建數據模型,以便應用能夠動態顯示和管理數據。
// 示例:創建一個包含用戶信息的數據模型
var user = {
  name: "John",
  age: 30,
  email: "[email protected]"
};
  • DOM 操作: JavaScript 可以訪問和操作文檔對象模型(DOM),從而改變用戶界面。你可以使用 JavaScript 來動態創建、修改或刪除頁面元素,以實現交互性和動態性。
// 示例:通過 JavaScript 向頁面添加新元素
var newElement = document.createElement("div");
newElement.textContent = "這是新的內容";
document.body.appendChild(newElement);

2. CSS 的應用

層疊樣式表(CSS)用於定義應用的樣式和佈局。在 HarmonyOS 中,CSS 用於設置用戶界面的外觀和樣式。以下是在 HarmonyOS 中使用 CSS 的一些關鍵方面:

  • 樣式定義: 你可以使用 CSS 來定義頁面元素的樣式,包括文本顏色、背景顏色、字體大小、邊框樣式等。通過為元素應用不同的 CSS 樣式,你可以創建各種各樣的界面效果。
/* 示例:定義按鈕的樣式 */
button {
  background-color: #008CBA;
  color: white;
  padding: 10px 20px;
  border: none;
  cursor: pointer;
}
  • 佈局控制: CSS 也用於控制頁面佈局,包括元素的位置、對齊方式和大小。你可以使用 CSS 佈局屬性來確保界面元素按照你的設計排列。
/* 示例:定義文本框的位置和大小 */
input[type="text"] {
  width: 200px;
  height: 30px;
  margin: 10px;
}

3. HTML 的應用

超文本標記語言(HTML)用於構建應用的用戶界面結構。在 HarmonyOS 中,HTML 用於定義頁面的結構和內容。以下是在 HarmonyOS 中使用 HTML 的一些關鍵方面:

  • 元素定義: 你可以使用 HTML 標記來定義頁面元素,如標題、段落、圖像、按鈕等。這些標記告訴瀏覽器如何渲染頁面內容。
<!-- 示例:定義一個按鈕 -->
<button id="myButton">點擊我</button>
  • 嵌套結構: HTML 允許你嵌套元素,以創建複雜的頁面結構。你可以使用標簽嵌套來構建層次化的界面。
<!-- 示例:嵌套元素創建複雜結構 -->
<div>
  <h1>這是標題</h1>
  <p>這是段落文本。</p>
</div>
  • 屬性設置: HTML 允許你為元素添加屬性,以提供更多信息或控制元素的行為。例如,你可以使用 id 屬性為元素提供唯一標識。
<!-- 示例:設置元素的唯一標識 -->
<button id="myButton">點擊我</button>

綜上所述,JavaScript、CSS 和 HTML 在 HarmonyOS 中的應用分別用於處理邏輯、設置樣式和構建界面結構。它們的組合使你能夠創建功能強大、外觀吸引人的 HarmonyOS 應用。要確保它們正確引用和使用,以便應用能夠正常運行。

2. HarmonyOS 的 UI 組件

HarmonyOS 提供了豐富的預置 UI 組件,這些組件用於構建用戶界面,從簡單的按鈕到複雜的列表視圖,都能滿足不同應用的需求。下麵詳細講解 HarmonyOS 的一些常用 UI 組件及其用法:

1. 文本框(Text)

文本框用於顯示和輸入文本內容。你可以在文本框中顯示靜態文本,也可以允許用戶在其中輸入文本。

用法示例:

<text value="這是一個文本框"></text>
<input type="text" placeholder="請輸入文本">

2. 按鈕(Button)

按鈕用於觸發事件,如點擊按鈕執行特定操作。你可以定義按鈕的文本和樣式。

用法示例:

<button>點擊我</button>

3. 圖像視圖(Image)

圖像視圖用於顯示圖像。你可以指定圖像的路徑或 URL,並設置圖像的尺寸和樣式。

用法示例:

<image src="image.jpg" width="100" height="100"></image>

4. 列表視圖(ListView)

列表視圖用於顯示具有滾動功能的列表。你可以添加多個列表項,並支持上下滾動。

用法示例:

<list-view>
  <list-item>第一項</list-item>
  <list-item>第二項</list-item>
  <list-item>第三項</list-item>
</list-view>

5. 滾動視圖(ScrollView)

滾動視圖允許你在有限的空間內滾動顯示大量內容。它通常包含一個視圖容器,其中包含滾動的內容。

用法示例:

<scroll-view>
  <!-- 這裡放置需要滾動的內容 -->
</scroll-view>

6. 進度條(ProgressBar)

進度條用於顯示任務的進度,通常用於長時間運行的操作。

用法示例:

<progress-bar value="50"></progress-bar>

7. 選擇器(Picker)

選擇器允許用戶從預定義的選項中進行選擇,常用於選擇日期、時間、列表項等。

用法示例:

<picker>
  <picker-item>選項1</picker-item>
  <picker-item>選項2</picker-item>
  <picker-item>選項3</picker-item>
</picker>

8. 開關(Switch)

開關用於切換一個二進位的開啟和關閉狀態,通常用於控制應用的某些功能。

用法示例:

<switch checked="true"></switch>

9. 對話框(Dialog)

對話框用於顯示消息、警告或需要用戶確認的信息。你可以自定義對話框的內容和按鈕。

用法示例:

<dialog title="提示" message="確認刪除這條記錄嗎?">
  <button>確認</button>
  <button>取消</button>
</dialog>

10. 標簽頁(TabLayout)

標簽頁用於切換應用不同部分或視圖之間。每個標簽頁通常關聯一個不同的內容區域。

用法示例:

<tab-layout>
  <tab title="標簽1">
    <!-- 內容1 -->
  </tab>
  <tab title="標簽2">
    <!-- 內容2 -->
  </tab>
</tab-layout>

以上是 HarmonyOS 中一些常用的 UI 組件及其用法示例。這些組件可以根據應用的需求進行自定義和擴展,以創建各種各樣的用戶界面。你可以根據具體的項目需求選擇合適的組件,然後使用 HTML、CSS 和 JavaScript 進行進一步的定製和交互。

3. 自定義 UI 組件

在 HarmonyOS 中,你可以自定義 UI 組件以滿足特定的應用需求。自定義 UI 組件允許你創建自己的界面元素,這些元素可以包含特定的樣式、行為和功能。以下是如何自定義 UI 組件的詳細講解:

1. 創建自定義 UI 組件

創建自定義 UI 組件通常包括以下步驟:

  • 定義 HTML 結構: 首先,定義組件的 HTML 結構。這包括使用 HTML 標記和元素來描述組件的外觀和佈局。
<div class="custom-component">
  <p>This is a custom component</p>
  <button>Click Me</button>
</div>
  • 應用 CSS 樣式: 使用 CSS 來為組件定義樣式,包括顏色、字體、邊框等。

css
Copy code
.custom-component {
background-color: #f0f0f0;
padding: 10px;
border: 1px solid #ccc;
}

  • 編寫 JavaScript 邏輯: 使用 JavaScript 來添加組件的交互行為和邏輯。這可以包括事件處理、數據操作等。
// 添加點擊事件處理程式
var button = document.querySelector('.custom-component button');
button.addEventListener('click', function() {
  alert('Button clicked');
});

2. 組件生命周期

自定義 UI 組件可以有自己的生命周期,包括創建、更新和銷毀階段。這些生命周期方法允許你在組件不同狀態下執行特定的操作。

以下是一些常見的生命周期方法:

  • created: 組件創建時觸發,通常用於初始化組件的狀態和屬性。
customComponent.created = function() {
  // 初始化組件狀態
  this.counter = 0;
};
  • updated: 組件屬性或狀態更新時觸發,用於處理更新後的操作。
customComponent.updated = function() {
  // 處理組件更新
  this.updateCounterDisplay();
};
  • destroyed: 組件銷毀時觸發,用於清理資源和取消事件監聽器。
customComponent.destroyed = function() {
  // 清理資源
  this.cleanup();
};

3. 組件通信

自定義 UI 組件可以與其他組件和應用進行通信。這通常通過自定義事件和消息機制來實現。

  • 自定義事件: 你可以定義自己的事件,然後在組件內觸發和監聽這些事件。
// 定義自定義事件
var customEvent = new CustomEvent('customEventName', {
  detail: {
    message: 'Custom event message'
  }
});

// 在組件內觸發事件
this.dispatchEvent(customEvent);

// 在組件外監聽事件
customComponent.addEventListener('customEventName', function(event) {
  console.log(event.detail.message);
});
  • 消息通信: 組件之間還可以通過消息傳遞數據和信息。
// 發送消息
ohos.aafwk.content.Want want = new ohos.aafwk.content.Want();
want.setParam("message", "Hello from custom component");
commonEventManager.publishCommonEvent(want);

// 接收消息
commonEventManager.subscribeCommonEvent(commonEventSubscriber);

以上是自定義 UI 組件的基本概念和用法。通過自定義 UI 組件,你可以創建符合特定需求的界面元素,擴展 HarmonyOS 應用的功能和交互。確保在組件中合理地管理生命周期和通信,以實現更複雜的應用場景。

4. 總結

本章詳細介紹了在 HarmonyOS 中應用 JS、CSS、HTML,HarmonyOS 的 UI 組件以及如何自定義 UI 組件。這些工具和技術將幫助你創建強大的用戶界面和交互體驗。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、排查過程 問題發現是因為當時接到了記憶體UMP報警信息,如下: 通過查看PFinder發現記憶體一直在增長,沒有停止跡象,觸發fullGC也並沒有下降趨勢: 當機立斷,先立即去NP上摘除了此台機器流量,然後繼續觀察,發現記憶體依然在不斷增長。 隨即查看故障分析,並沒有得到有效信息: 因為流量已經摘除, ...
  • CodeBuilder是一款強大的代碼生成工具,目前發佈了 3.2 版本,大家可以前去下載體驗 官方主頁。 1、多種數據源 基於 ADO.NET 的數據驅動 Power Designer PDManer DbSchema Swagger 這幾種數據源基本上已經覆蓋了我們常用的數據環境了,如果你有能力 ...
  • 300元到手啦-阿裡云云工開物計劃 阿裡雲要給所有中國高校在讀大學生每人送一臺雲伺服器 先放鏈接: 點擊進入 優惠券適用於以下場景 阿裡雲預付費通用,增量帶寬,降級,阿裡雲按量付費賬單,新購,續費,轉正,帶寬補償,試用,轉換訂單,更換操作系統,擴容,升級,換購 必須是在校大學生且完成認證,認證跟著指 ...
  • Apollo 特點:成熟,穩定 支持管理多環境/多集群/多命名空間的配置 配置修改發佈實時(1s)通知到應用程式 支持許可權控制、配置繼承,版本管理,灰度發佈,使用監控等 ...
  • TerraMoursGPT V1.0 開發總結 TerraMoursGPT V1.0 是之前gpt項目基於TerraMours後端框架的重構,實現用戶登陸和基於SK的多語言模型聊天、基於chatgpt和SD的多模型圖片生成等功能。管理端實現數據看板、聊天記錄管理,圖片記錄管理、用戶管理、系統配置等。 ...
  • 前言 為滿足業務需要,需要為項目中自定義模板添加一個計算欄位的組件,通過設置字元串表達式,使用時在改變表達式其中一個欄位的數據時,自動計算另外一個欄位的值。 本篇為上篇,介紹原理,簡單實現一個工具,輸入字元串表達式,解析其中的參數,輸入參數計算結果。 下篇將基於此封裝實現對Mongo查詢語法的封裝, ...
  • 簡介: 背景:一直以來在項目上經常使用ping指令來測試網路通信,最近稍微研究了一下常用的指令,記錄以作備忘。--MaQaQ 2023-11-1 ping (Packet Internet Groper)是一種網際網路包探索器,用於測試網路連接量的程式 。Ping是工作在 TCP/IP網路體繫結構中應 ...
  • 根據北京研精畢智信息咨詢發佈的調查報告,2018-2021年,全球數據存儲量由30ZB上升至55ZB左右,年平均增長率約為27.8%。到2022年,數據總存儲量進一步增加至65ZB以上,較2021年同期新增了約10ZB,同比增長18.2%。各市場主體對數據的重視程度不斷提升,數據應用逐步由批量處理向 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...