本教程屬于參考類教程,使用wxbit平臺,建議讀者有一定的基礎(chǔ)(ai助手的鏈接、界面布局、素材……)后閱讀。
今天,我們開始正式探索App inventor屏幕的豐富功能。
App inventor中,所有的組件設(shè)計(jì)與邏輯都是依附于屏幕的,一切都設(shè)計(jì)在一個(gè)個(gè)屏幕上,被屏幕所分開管轄,不像我們常見的編程設(shè)計(jì),屏幕只是展示,有一個(gè)程序從頭到尾運(yùn)行。可以說,App inventor中,每個(gè)屏幕都是獨(dú)立的小程序,通過屏幕與屏幕之間的切換,組成一個(gè)軟件。
這也許跟App inventor的創(chuàng)作初衷有關(guān),為了讓更多普通人參與,他必須以使用者的角度開發(fā)。在使用者的角度,UI比邏輯更重要,Ui是看得到的,而邏輯不行。所以,App inventor中,UI是更重要的存在,初始界面是UI設(shè)計(jì),邏輯依附于屏幕。同樣,代碼是以屏幕中的組件為基礎(chǔ)編寫的。
注意:如果你面前的屏幕是創(chuàng)建項(xiàng)目時(shí)自動生成的第一塊屏幕,會有一些特別的屬性,將在文章偏后介紹。
管理
顯而易見,屏幕的增添在工作面板的左上角。

列表拉出后可以看到所有已創(chuàng)建的屏幕,并在屏幕間切換,增添。

值得一提的是,“復(fù)制屏幕”會將該屏幕的布局、組件、代碼塊全部復(fù)制,僅修改名字。
這四個(gè)鍵是在上方的操作欄中,在組件設(shè)計(jì)與邏輯設(shè)計(jì)兩個(gè)模式下都可見,可以隨時(shí)切換使用。每個(gè)屏幕,有自己獨(dú)立的界面與邏輯,必須切換才能編輯。

右側(cè)的組件列表展示了該屏幕下的所有布局與組件,可以進(jìn)行增刪與重命名。
屬性與邏輯
在組件列表中選中最高一級————屏幕(如上圖),就可以在其右側(cè)修改屬性。
同時(shí),在邏輯設(shè)計(jì)中,也有屏幕相關(guān)的塊,部分與屬性交重,部分則不同。
標(biāo)題

標(biāo)題與屏幕名稱概念是不同的。
屏幕名稱是顯示在組件列表與屏幕列表的字符,是為了在開發(fā)大型程序時(shí)方便開發(fā)者辨別,目前只能在新建屏幕時(shí)更改,初識屏無法更改。
標(biāo)題是顯示在標(biāo)題欄上的文字。

標(biāo)題默認(rèn)與屏幕名稱相同,但可以自由更改,不影響屏幕名稱。

標(biāo)題可以在運(yùn)行時(shí)更改與獲取。
應(yīng)用說明

就是說明,用于應(yīng)用中解釋相關(guān)信息或填寫版權(quán)。(右下角時(shí)可以拉動的)

點(diǎn)開標(biāo)題欄上的三個(gè)小點(diǎn)——關(guān)于,查看

應(yīng)用說明可以在運(yùn)行時(shí)更改與獲取。
水平對齊

居左

居中

居右

水平對齊也可在運(yùn)行時(shí)更改與獲取,但注意他的值是數(shù)字形式。

| 含義 | 值 |
|---|---|
| 居左 | 1 |
| 居中 | 3 |
| 居右 | 2 |
垂直對齊

居上

居中

居下

垂直對齊可在運(yùn)行時(shí)更改與獲取,但注意他的值是數(shù)字形式。

| 含義 | 值 |
|---|---|
| 居上 | 1 |
| 居中 | 2 |
| 居下 | 3 |
是否允許滾動

默認(rèn)否,下圖為是的效果。(當(dāng)布局超過一個(gè)屏幕時(shí),滑動條才會顯示)

允許滾動后,垂直布局會失效,全部變?yōu)榫由稀?/p>

是否允許滾動可在運(yùn)行時(shí)更改與獲取,但注意他的值是布爾值(真或假)。
屏幕方向

下表打開自動旋轉(zhuǎn)指在手機(jī)設(shè)置中打開。
| 方向(是否旋轉(zhuǎn)) | 關(guān)閉自動旋轉(zhuǎn) | 打開自動旋轉(zhuǎn) |
|---|---|---|
| 不設(shè)方向 | 否 | 是 |
| 鎖定豎屏 | 否 | 否 |
| 鎖定橫屏 | 否 | 否 |
| 自動感應(yīng) | 是 | 是 |
| 用戶設(shè)定 | 否 | 是 |
同上一屏好理解,注意初始屏選同上一屏默認(rèn)不設(shè)方向。
理解了是否旋轉(zhuǎn),鎖定豎/橫屏也好理解。

當(dāng)然屏幕方向可在運(yùn)行時(shí)更改與獲取,但注意他的值是文本(下拉菜單中的英文)
| 方向 | 文本 |
|---|---|
| 不設(shè)方向 | unspecified |
| 鎖定豎屏 | portrait |
| 鎖定橫屏 | landscape |
| 自動感應(yīng) | sensor |
| 用戶設(shè)定 | user |
| 同上一屏 | behind |

關(guān)于屏幕方向還有一個(gè)特殊的代碼塊,此時(shí)的變量“屏幕方向”向上為0,向右為1,向左為3(我也不知道為什么沒有2)。這里的“屏幕方向”是一個(gè)局部變量,只能在這一組代碼塊中使用(黃色框中),且設(shè)置“屏幕方向”只會更改變量值,并不更改屏幕方向。
注意,屬性中的屏幕方向與上圖的屏幕方向概念不同!
背景顏色與背景圖片

不難理解,自己設(shè)定即可。

兩者可在運(yùn)行時(shí)更改與獲取,但注意他的值是顏色/素材。
是否顯示狀態(tài)欄

下圖紅色框中的即為狀態(tài)欄。

是否顯示狀態(tài)欄可在運(yùn)行時(shí)更改與獲取,但注意他的值是布爾值。

狀態(tài)欄顏色

默認(rèn)為黑,透明時(shí)與標(biāo)題欄同色。
標(biāo)題欄顏色可在運(yùn)行時(shí)更改與獲取,但注意他的值是顏色。
是否顯示標(biāo)題欄

下圖紅色框中的即為標(biāo)題欄。

是否顯示標(biāo)題欄可在運(yùn)行時(shí)更改與獲取,但注意他的值是布爾值。
標(biāo)題顏色

默認(rèn)為白(看起來是黑)。
標(biāo)題顏色可在運(yùn)行時(shí)更改與獲取,但注意他的值是顏色。
標(biāo)題欄背景色

默認(rèn)為藍(lán)。
標(biāo)題欄背景色可在運(yùn)行時(shí)更改與獲取,但注意他的值是顏色。
開/關(guān)屏動畫

默認(rèn)漸隱。

同屏幕方向,可在運(yùn)行時(shí)更改與獲取,值為文本。
其余的代碼塊

這五個(gè)好理解,至于什么錯(cuò)誤/授權(quán),自己在測試的時(shí)候看

這四個(gè)可以直接調(diào)用,打開應(yīng)用設(shè)置是系統(tǒng)的應(yīng)用設(shè)置。

下面的代碼是有返回值的,需要接在組件后,返回組件名,對生成組件的操作,見右邊“任意組件”,通過這個(gè)功能,我們可以在運(yùn)行時(shí)構(gòu)建UI,也可在前期快速構(gòu)建相似的塊。

使用如圖,也可接在賦值語句后。

這三個(gè)不常用,也簡單。
初始屏

當(dāng)我們開始新建一個(gè)項(xiàng)目的時(shí)候,就會自動建立一個(gè)屏幕,如圖中的Screen1。這個(gè)屏幕作為整個(gè)程序的基礎(chǔ),有很多特性。

可以看到,這個(gè)屏幕是無法重命名與刪除的,作為初始屏,這是一大限制。

在紅框的位置,我們可以更改界面大小,以適應(yīng)平板尺寸。
我們再看右邊的組件屬性。

應(yīng)用包名
應(yīng)用包名是程序的辨識碼,也就是說系統(tǒng)并不認(rèn)應(yīng)用的名字,而是認(rèn)應(yīng)用包名,平臺上默認(rèn)的包名為“wxbit.”,若需要后續(xù)發(fā)布應(yīng)用,則可以相應(yīng)更改。
下面是一些常見應(yīng)用的應(yīng)用包名對照表。
| 名稱 | 應(yīng)用包名 |
|---|---|
| com.tencent.mobileqq | |
| 微信 | com.tencent.mm |
| 淘寶 | com.taobao.taobao |
| 京東 | com.jingdong.app.mall |
| 新浪微博 | com.sina.weibo |
| 騰訊視頻 | com.tencent.qqlive |
| QQ瀏覽器 | com.tencent.mtt |
| 谷歌瀏覽器 | com.android.chrome |
| 高德地圖 | com.autonavi.minimap |
| 滴滴出行 | com.sdu.didi.psnger12306battymole.trainticket |
| QQ音樂 | com.tencent.qqmusi |
| 網(wǎng)易云音樂 | com.netease.cloudmusic |
| 喜馬拉雅 | com.ximalaya.ting.android |
要注意的是,包名中只能包含數(shù)字、字母、點(diǎn)和下劃線,點(diǎn)為分隔符,將包名分割為多個(gè)部分,每部分必須以字母開頭。
應(yīng)用名稱
最初新建的時(shí)候,新建的是“項(xiàng)目”。項(xiàng)目和應(yīng)用的概念是不一樣的。在App inventor中,新建時(shí),應(yīng)用名與項(xiàng)目名是相同的,可以自己更改。

要注意的是,一個(gè)賬號不能有兩個(gè)同名的項(xiàng)目,但可以有兩個(gè)同名的應(yīng)用?!绊?xiàng)目”是面向開發(fā)者來說的標(biāo)識,要兼顧機(jī)器的儲存與管理,“應(yīng)用”是對于使用者的,發(fā)布后以此為名,要考慮通俗易懂。

在App inventor中,對于項(xiàng)目的名稱有很大的限制,為了更好的處理;而應(yīng)用名稱,甚至連中文也可以。
圖標(biāo)
沒什么好說,自己上傳并從素材庫添加,作為在手機(jī)桌面上看到的圖標(biāo)。
但是,添加是好像不限制圖片類型,為了最終效果,還是推薦用icon。

推薦一個(gè)圖標(biāo)網(wǎng)站,制作很精美,免費(fèi)的:https://www.easyicon.net/
窗口大小

會固定為手機(jī)尺寸。
主題

制作好的配色方案,但……很丑。

配合主題使用。

這樣美觀好多。
其余

大型項(xiàng)目的版本追蹤,但ai好像沒有g(shù)it的概念,版本更迭比較復(fù)雜。

如果涉及網(wǎng)絡(luò)交互等與別的程序交互,json才是王牌,ai自有的列表格式是不相通的。(也可用代碼轉(zhuǎn))