01. 關於 Component 和 ComponentContainer 對象;
應用中所有的用戶界面元素都是由Component和ComponentContainer對象構成。
Component是繪制在屏幕上的一個對象,用戶能與之交互。
ComponentContainer是一個用於容納其他Component和ComponentContainer對象的容器。
02. 組件和布局
用戶界面元素統稱為組件,組件根據一定的層級結構進行組合形成布局。
組件在未被添加到布局中時,既無法顯示也無法交互,因此一個用戶界面至少包含一個布局。
在UI框架中,具體的布局類通常以XXLayout命名,完整的用戶界面是一個布局,用戶界面中的一部分也可以是一個布局。
布局中容納Component與ComponentContainer對象。
>>> 關聯關系如下
>>> LayoutConfig
每種布局都根據自身特點提供LayoutConfig供子Component設定布局屬性和參數,通過指定布局屬性可以對子Component在布局中的顯示效果進行約束。
例如:“width”、“height”是最基本的布局屬性,它們指定了組件的大小。
03. Ability 和 AbilitySlice 的關系
HarmonyOS提供了Ability和AbilitySlice兩個基礎類,一個有界面的Ability可以由一個或多個AbilitySlice構成,
AbilitySlice主要用於承載單個頁面的具體邏輯實現和界面UI,是應用顯示、運行和跳轉的最小單元。
AbilitySlice通過setUIContent為界面設置布局。
組件需要進行組合,並添加到界面的布局中。在Java UI框架中,提供了兩種編寫布局的方式:
- 在代碼中創建布局:用代碼創建Component和ComponentContainer對象,為這些對象設置合適的布局參數和屬性值,並將Component添加到ComponentContainer中,從而創建出完整界面。
- 在XML中聲明UI布局:按層級結構來描述Component和ComponentContainer的關系,給組件節點設定合適的布局參數和屬性值,代碼中可直接加載生成此布局。
這兩種方式創建出的布局沒有本質差別,在XML中聲明布局,在加載后同樣可在代碼中對該布局進行修改。
04.組件的分類
05. 各種不同的組件(詳情)
TextField: 若需要使用 Basement, 則Padding 不要設置值,否則是看不見的;
TextField: 繼承自 Text;