App Inventor學習記錄197-讓人驚艷的動態元件外掛~CompCreator

這個功能超級讓人驚艷,可以增加沒有在畫面編排上的元件。

記錄一下:
App Inventor學習記錄197-讓人驚艷的動態元件外掛~CompCreator


這次範例的完成品如下。

這裡非常的有必要把框架說明一下。首先我們在文字輸入盒上輸入數字後按下按鈕。
就會在按鈕下方,產生我們輸入數量的按鈕,輸入 5,就是產生 5個按鈕。輸入 10就是產生 10個按鈕。
然後,如果我們點擊新產生按鈕上的文字的話,在最上方的標籤,就會顯示出按鈕本身的文字。

也就是說,在這個範例中,我們輸入按鈕的數量是不確定的,所以我們在拉元件的時候,就會沒辦法依照固定的數量去拉元件。遇到這個情形的話,就可以試用一下這個外掛。


畫面編排的部份如下:

不知道大家看到畫面編排中的元件,只有一個標籤、一個按鈕、一個文字輸入盒和一個 compcreator的外掛會不會很驚訝。是的,這次用到的元件就只有這樣,但我們用上這個外掛的效果之後,就會有神奇的事情發生。


全部的程式方塊如下。


第 1部份的程式方塊記錄。

建立清單_加入的按鈕清單,預設值是空清單。
這個清單等一下會拿來放新增加的按鈕,然後再使用任意元件中的任意按鈕,按鈕按下的時候,判斷按鈕是否在清單中,如果是的話,再做其它的設定。

建立變數_外框,它的值是一個空白文字。這是因為在 app inventor中,每一個元件的本質其實就是一段文字


第 2-1部份程式方塊記錄。

when button 1.click當按鈕 1點擊的時候。
加入流程判斷式,如果變數_外框的值不是空白的話。
call comp creator1.remove呼叫外掛中的移除方塊,移除 component變數_外框,也就是新增加的垂直配置。
這個步驟是為了每一次點擊按鈕的時候,就重新配置一次。
這裡要注意的是,如果我們移除了最上層的方塊,那麼,在它裡面的東西都會一併的移除。

加入區域變數方塊,新增加一個區域變數_新增垂直配置。
這個變數的值,我們用外掛中的這個方塊 call comp creator1.create來做,這個方塊的用途是在 in的參數中,產生一個 component元件。component參數中,我們要用拉文字方塊,輸入我們要產生的元件的名稱

以這次的範例為例。
我們要產生一個垂直配置元件。
所以在 component參數這裡,我就填 VerticalArrangement
如果要產生一個按鈕元件。
component參數這裡就要填 Button這裡只能填英文,而且有區分大小寫
in這個參數,要放的就是水平配置、水平捲動配置,垂直配置、垂直捲動配置,或者是 screen。

call component.set,這個外掛中的方塊就是用來設定我們修改新增加元件的屬性用的。
component參數,放我們要修改的元件。
property參數,放要修改的參數,要用英文,也有分大小寫
value參數,放要修改的值。
以上面這個圖片來舉例。
我們把 component參數,放入區域變數_新增垂直配置。在 property參數中放入 Width, value中放入 -2。
這個指的就是設定垂直配置的寬度設定成填滿。 其它三個方塊的設定用法都是相同的。


第 2-1的程式方塊記錄。

首先,先把變數_外框的值,設定成區域變數_新增垂直配置的值。這樣比較方便我記憶。
因為要建立指定數量的按鈕,所以這裡用 for each number 方塊來做,from值放 1,to值放 textbox.text文字輸入盒輸入的數字,by間隔為 1。
這個範例中,要在新增的垂直配置中,再放入元件,所以這裡會原本的區域變數中,再拉一個區域變數_按鈕。放在 for each number的方塊下面。
add items to list的清單方塊,把 item參數中的區域變數_按鈕,加到 list參數中的清單_加入按鈕的清單中。
同樣 call comp creator.set呼叫外掛中修改新增元件屬性的方塊,針對這個按鈕的屬性值做調整。


第 3部份的程式方塊記錄。

我們新增了好多按鈕之後,如果想要修改這些按鈕的屬性的時候該怎麼做。
我們可以利用任意元件中的任意按鈕來做,加入流程判斷,如果我們點擊的按鈕在清單_加入的按鈕清單中的話,就把該元件的字體大小調整成 25。再用外掛中 call comp creator.get呼叫程式取新增元件值的方塊,來設定標籤 1的文字。

好的,全部的程式方塊都簡單說明過了,建議大家試著做一次,就會用的越來越熟。
但如果不想要重新拉程式方塊,或要需要範例 aia檔的話,請前往第 2頁哦!

發佈留言