2016-11-04 87 views
0

不會呈現試圖輸出在NativeScript視圖組合佈局上NativeScript

<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="loaded"> 

    <StackLayout> 
     <Label class="h1 c-grey" text="(re)volution" /> 

     <TextField class="c-bg-grey" id="email" text="{{ email }}" hint="Email Address" keyboardType="email" autocorrect="false" autocapitalizationType="none" /> 

     <TextField secure="true" text="{{ password }}" hint="Password" /> 

     <Button text="Sign in" class="btn btn-primary" tap="signIn" /> 

    </StackLayout> 

    <GridLayout columns="50, auto, *" rows="50, auto, *" width="210" height="210" style.backgroundColor="lightgray"> 
     <Label text="Label 1" row="0" col="0" backgroundColor="red" /> 
     <Label text="Label 2" row="0" col="1" colSpan="2" backgroundColor="green" /> 
     <Label text="Label 3" row="1" col="0" rowSpan="2" backgroundColor="blue" /> 
     <Label text="Label 4" row="1" col="1" backgroundColor="yellow" /> 
     <Label text="Label 5" row="1" col="2" backgroundColor="orange" /> 
     <Label text="Label 6" row="2" col="1" backgroundColor="pink" /> 
     <Label text="Label 7" row="2" col="2" backgroundColor="purple" /> 
    </GridLayout> 

</Page> 

仿真器僅呈現的最後一個元素下面。無論我嘗試實現哪個佈局,都會發生同樣的情況,它總是呈現最後一個佈局容器。 我在這裏錯過了什麼? 我需要申報什麼才能在我的視圖中顯示所有佈局容器?

回答

5

頁面控件是ContentView,它意味着它只接受一個View作爲子項。 所以你需要在另一個佈局中包裝StackLayout和GridLayout,或者移除StackLayout並將其放在GridLayout中。

最好的解決方案是儘可能少的佈局以獲得更好的性能。

+0

謝謝@HHristov它的工作原理!你的意思是說,爲了獲得更好的性能,最好避免多種類型的佈局容器,或者更少的佈局容器? – Benoit

+0

以及任何渲染越少顯示效果越好的元素,所以是佈局/容器/元素越少越好。當然,你不能跳過所有的佈局,因爲你需要一個好看的用戶界面,只需要牢記,將3,4,5等容器嵌套在一起就可能導致性能下降。 –