(原創)【B4A】一步一步入門05:控制元件、公有屬性、水平錨定、垂直錨定(控制元件篇01)

leslie_xin發表於2023-02-28

一、前言

前面的教程,已經完整講述了用B4A開發安卓APP從新建專案到編譯釋出的完整流程。從本篇開始,我們將會從B4A的細節處著手,一步一步掌握B4A。

從本篇開始的子系列為“控制元件篇”系列,本系列將從日常使用的角度出發,著重講一些控制元件的常用方式及特殊用法。

本篇是“控制元件篇”的第一篇,主要講解“控制元件”的公有屬性。

相信看完的你,一定會有所收穫!

本地地址:https://www.cnblogs.com/lesliexin/p/17157106.html


二、公有屬性

在視覺化設計器中的屬性視窗,選中控制元件後可以看到該控制元件的所有屬性。

image

因為控制元件都是類似的,所以會有一些公有的屬性,像上圖中的“Main”和“通用屬性”分組中,絕大多數屬性都是每個控制元件都擁有的。

下面,我們對一些常用的屬性進行講解。

1,名稱

此屬性是用來區分控制元件的“名字”,具有唯一性,是不可相同的。

關於控制元件的命名規則有很多種,如按鈕名稱一般以“btn”開頭,標籤名稱一般以“lbl”開頭等等。

這種命名規則是為了有更好的可讀性,並不是強制的。

2,事件名稱

事件名稱,即生成控制元件事件時,事件的字首名稱,見下圖的“Button1”:

image

在修改上面的“名稱”屬性時,會發現事件名稱跟隨改變。一般而言,每個控制元件都有各自的對應事件,所以控制元件的名稱與事件名稱都不相同。

不過,在動態生成控制元件(如:透過配置檔案來批次生成指定控制元件)時,因為動態生成的同型別控制元件大多具有類似的功能,所以會將這些同型別控制元件的事件名稱設定為一樣的,也就是所有同型別的控制元件都指向這一個事件。而在事件的實現中,可以透過控制元件的Tag屬性區分具體是哪個控制元件觸發的。這樣可以節省大量的程式碼,實現起來也非常直觀。此非本文重點,不再進行展開,後續文章會有專門講解。

3,Parent

Parent屬性,也就是控制元件的“父控制元件”、“父容器”。在程式的佈局中,經常會使用各種容器類控制元件對其它控制元件進行分組,以方便控制。(注:B4A的IDE自帶中文語言,但是翻譯卻是中英夾雜,為了方便對照,本文不再進行二次翻譯,直接取IDE上顯示的名稱。讀者請注意區分。)

控制元件分屬不同的“父容器”後,也就形成一個“控制元件樹”,在視覺化設計器的“控制元件樹”視窗,可以直觀的看到各個控制元件的所屬層級。

image

我們即可以手動設定控制元件的“Parent”屬性,也可以在“控制元件樹”上拖動控制元件,直觀快捷的進行調整。

4,水平錨定、垂直錨定

所有的控制元件都可以視為一個“矩形”,而“錨定”,即是錨定這個矩形的“邊”,當這個“邊”被錨定後,其“邊”相對於“父容器”的位置就不會再發生改變。

image

水平錨定和垂直錨定都有三個選項,對於水平錨定而言,這三個選項的含義分別是“固定左邊位置”、“固定右邊位置”、“左右兩端固定”。同理,對於垂直錨定而言,其含義分別是“固定上邊位置”、“固定下邊位置”、“上現兩端固定”。

在選擇不同的錨定項後,佈局設計器裡被錨定的邊將會高亮顯示一個圓點。

image

面設定不同的選項下,下面的四個屬性的含義也會發生變化,具體本文不過多贅述,可透過下面的動圖演示直觀的感受。

image

5,Enabled、Visible

對於控制元件而言,此兩個屬性是非常常用的,一個是控制元件是否可用,一個是控制元件是否顯示。

很好理解,不再過多敘述。


三、總結

控制元件,是APP的核心,APP所展現的一切,都是由諸多控制元件構成的。

本篇作為“控制元件篇”系列的開篇,講解了一下主要的公有屬性,因為公有屬性是通用的,所以系列後續文章就可以節省大量筆墨。

“控制元件篇”系列的下一篇,將會講一下最常用的控制元件:Button,也就是按鈕控制元件。

敬請期待。


-【END】-

相關文章