【譯】Fuse入門(二)

官網(wǎng)原文:Fuse

輸出

預(yù)覽時(shí),F(xiàn)use會(huì)在手持設(shè)備上創(chuàng)建一個(gè)殼(shell)程序,與在運(yùn)行在桌面系統(tǒng)的Fuse后臺(tái)程序相連,從而快速顯示你對(duì)項(xiàng)目做的所有更改。但是,如果你去參加一個(gè)會(huì)議,或者給客戶去秀秀,手持設(shè)備要斷開與開發(fā)環(huán)境的連接時(shí),你就需要將項(xiàng)目輸出到你要運(yùn)行的設(shè)備上。

輸出到iOS

首先,你需要有一臺(tái)運(yùn)行OS X系統(tǒng)并安裝了Xcode的Mac,其次,你還要有一個(gè)蘋果開發(fā)者賬號(hào),都齊了,就在項(xiàng)目目錄里鍵入下面的命令:

fuse build --target=ios --run

該命令會(huì)在Xcode中打開建成的項(xiàng)目,在可用輸出目標(biāo)的下拉菜單里選擇你的設(shè)備型號(hào),然后點(diǎn)擊“運(yùn)行”按鈕,App就會(huì)部署并運(yùn)行在你的設(shè)備上了。

輸出到安卓

首先確定Android SDK/NDK都安裝好了(在安卓上預(yù)覽也需要安裝這些,如沒有,在命令行輸入:fuse install android),然后在命令行的項(xiàng)目目錄中鍵入:

fuse build --target=Andoid --run

你的項(xiàng)目就已部署在與系統(tǒng)相連的安卓設(shè)備上了。

UX標(biāo)記

Fuse主要被用來做這么兩類事兒:

  • 一類是用來創(chuàng)建App或者原型,主要是編寫跨平臺(tái)的JavaScript邏輯,
  • 另外就是為原生App創(chuàng)建組件、UI視圖和設(shè)計(jì)

這兩類事兒都是通過UX標(biāo)記來進(jìn)行主體表述的。

UX標(biāo)記實(shí)際上是基于XML的文件格式,有點(diǎn)XML經(jīng)驗(yàn)的用戶都能輕松上手。詳細(xì)的功能、深度的解讀,請(qǐng)參考UX標(biāo)記文檔。

用App標(biāo)簽新建應(yīng)用

單獨(dú)創(chuàng)建應(yīng)用或原型,使用<app>標(biāo)簽:

<App Background="#436EEE">
    <Text>Hello, world!</Text>
</App>

<App>標(biāo)簽內(nèi),可以嵌入任何Node、BehaviorTheme這些類型的標(biāo)簽。上面的例子簡單的用默認(rèn)的字體顯示了一段文字。

App標(biāo)簽自身負(fù)責(zé)引導(dǎo)整個(gè)App,并處理應(yīng)用程序的生命周期和主題事務(wù)。

使用Background屬性設(shè)置App根視圖的背景色。

UX 標(biāo)簽

UX文檔都是由若干XML標(biāo)簽組成,每個(gè)可用的UX標(biāo)簽都相當(dāng)于一個(gè)用Uno編碼的類,每個(gè)標(biāo)簽還對(duì)應(yīng)一個(gè)或多個(gè)runtime對(duì)象。

這些可用的標(biāo)簽(類)可分為如下類別:

  • App類代表一個(gè)應(yīng)用的根(the root),有也只能有一個(gè)節(jié)點(diǎn)(Node)
  • 相當(dāng)多的Node類型,主要都是些UI元素
  • Behavior類的標(biāo)簽用來修改節(jié)點(diǎn),主要有如下分類:
    • 手勢(shì)
    • 觸發(fā)器
    • 腳本
    • 視覺特效,應(yīng)用于各元素
  • 樣式(Styling)使各組件保持統(tǒng)一的視覺表現(xiàn),避免大量重復(fù)的數(shù)據(jù)

主題

App提供一個(gè)主題設(shè)置,Theme定義了各標(biāo)準(zhǔn)組件的外觀,如下列所示:

<App Theme="..name of theme..">

如不指定,App會(huì)默認(rèn)一個(gè)缺省設(shè)定叫做GraphicsTheme。

原生主題(NativeTheme)

當(dāng)使用NativeTheme時(shí), Fuse會(huì)應(yīng)用目標(biāo)平臺(tái)的原生控制,如下所示:

<App Theme="Native">
    <StackPanel>
        <Button />
        <Switch />
        <Slider />
    </StackPanel>
</App>

此例中,所有顯示的控制器都采用iOS和安卓的原生樣式,而桌面預(yù)覽中并不會(huì)出現(xiàn)。

如果你既想使用Native原生控制,又想使用桌面預(yù)覽,那可以用NativeWithFallback主題,這樣就會(huì)在iOS和安卓上用原生控制,而在桌面預(yù)覽會(huì)退用Basic主題。

圖片主題(GraphicsTheme)

GraphicsTheme是App的缺省主題,它能讓你的App在所有平臺(tái)上都保持一致的外觀,除了這些:

  • 狀態(tài)欄在不同平臺(tái)上會(huì)表現(xiàn)不同
  • TextInput- 這是個(gè)高層級(jí)控件,由于依賴原生平臺(tái)的控制,這里缺省是不會(huì)被渲染的。所以要么你自定義它的樣式或者換用BasicTheme

使用GrapicsTheme主題的好處是:

  • 通過Fuse的實(shí)時(shí)預(yù)覽窗,你可以在PC或Mac上預(yù)覽你的App,用戶體驗(yàn)會(huì)比使用iOS和安卓模擬器要好很多。
  • 在全平臺(tái)上,你的設(shè)計(jì)和動(dòng)畫效果,看起來、用起來均保持一致。

因?yàn)?code>GraphicsTheme是缺省值,所以無需特意寫上,但如果實(shí)在需要,那就看這兒:

<App Theme="Graphics">

或者這樣:

<App>
    <GraphicsTheme />
</App>

創(chuàng)建自己的GraphicsTheme

擴(kuò)展定制GraphicsTheme也是可行的,比如要給Slider滑動(dòng)條和Button按鈕定義特別的外觀。

自定義GraphicsTheme的方式是,把它當(dāng)成一個(gè)基礎(chǔ)類來使用, 象這樣:

<GraphicsTheme ux:Class="MyGraphicsTheme">
    <Button>
        <!-- how a button looks goes here -->
    </Button>
</GraphicsTheme>

這樣的話,在App標(biāo)簽里要這么寫:

<App>
    <MyGraphicsTheme />
</App>

也可以給它創(chuàng)建一個(gè)全局別名,像這樣:

<MyGraphicsTheme ux:Global="MyGraphics" />

那樣的話,在App標(biāo)簽里要這么寫:

<App Theme="MyGraphics">
    ...
</App>

基本主題(BasicTheme)

這個(gè)BasicTheme主題實(shí)際上就是以GraphicsTheme為基礎(chǔ),加上一些缺省的Fuse頁面,并且在設(shè)計(jì)上采用了谷歌的material design設(shè)計(jì)理念。

如果你設(shè)計(jì)UI時(shí)需要一個(gè)起點(diǎn),該主題會(huì)幫到你并在全平臺(tái)上保持一致的外觀。

<App Theme="Basic">
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,281評(píng)論 25 708
  • 官網(wǎng)原文:https://www.fusetools.com/learn/guides/tutorial 安裝設(shè)置...
    趙趙811閱讀 2,808評(píng)論 0 2
  • 官網(wǎng)原文:Fuse 開始起步 開始運(yùn)行和使用Fuse超級(jí)簡單,首先,下載最新版本的[Fuse](https://w...
    趙趙811閱讀 2,711評(píng)論 1 1
  • 開始起步 開始運(yùn)行和使用Fuse超級(jí)簡單,首先,下載最新版本的Fuse! Fuse是什么? Fuse 是一個(gè)給開發(fā)...
    衣咸閱讀 630評(píng)論 0 0
  • 直到去年,還會(huì)有人問我怎么在安穩(wěn)的體制內(nèi)不干了,我說,未來太清晰了太確定了,把我嚇壞了,就得跑出來。 這兩年我見過...
    黑夜行舟閱讀 301評(píng)論 0 0

友情鏈接更多精彩內(nèi)容