Flex中使用TabBar ViewStack 控件不加載問題

TabBar ViewStack 使用分頁時,如果不每頁都點擊一下,在驗證各頁上控件時錯誤,修改代碼如下:


<mx:TabBar id="tabBar" direction="horizontal" dataProvider="{viewStack}" width="100%" />
<mx:ViewStack id="viewStack" width="100%" height="100%"  creationPolicy="all" >



網上查找解釋:

flex之creationPolicy屬性

Flex 中的導航條容器(ViewStack、Accordin、TabNavigator)中內置了推遲實例化。默認情況下,推遲實例化意味着 Flex 在啓動時不會創建任何子視圖,但用戶通過導航到該容器可觸發所有子視圖的創建。
容器標籤中的 creationPolicy 屬性控制子視圖的創建。下面的列表將解釋 Flex 導航條容器每個 creationPolicy 屬性設置的含義。

 creationPolicy=“auto”
Flex 創建導航條容器時將不會立即創建所有的後代對象,只創建開始時可見的後代對象。這一推遲實例化行爲的結果是帶有導航條容器的 MXML應用程序加載很快,但從一個視圖瀏覽至另一視圖時,用戶將等待短暫的停頓時間。可用性研究表明,與應用程序啓動時爲創建所有導航條子視圖而等待較長時間相 比,這種用戶體驗更好。同樣,用戶可能從不訪問某些子視圖,因而在啓動時創建這些子視圖會浪費資源。注意,如果在一個非導航條容器上設置 creationPolicy 爲“auto”,則必須加入額外的代碼來指示何時創建該容器的子對象。這些額外代碼已經內置進導航條容器中,因而可在導航條容器上設置 creationPolicy 爲“auto”而無需任何額外的工作。
• creationPolicy=“all”
Flex 創建導航條容器時將創建所有子視圖中的所有控件。這一設置導致程序啓動時有一個延遲,但在視圖之間切換的響應時間將會較短。
• creationPolicy=“none”
Flex 將不會實例化導航條容器中或者其子視圖中的任何組件,直到實例化方法被顯式調用可用 createComponents() 方法顯式地實例化視圖。Flex 文檔中有更多關於設置自定義組件創建計劃的信息。
通過設置 creationPolicy 屬性,可手工創建子視圖,並決定在應用程序架構的何處發生創建導航條容器子視圖所需的資源佔用。可用性研究顯示,使用 auto 設置可取得較好的用戶體驗。一個常見的錯誤會延長應用程序啓動時間,即錯誤地在某一個導航條容器上設定 creationPolicy=“all”。僅當能確保組件創建計劃足夠高效時可設置 creationPolicy 爲“all”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章