Flex ViewStack高度異常問題
更新時(shí)間:2009年07月13日 00:27:55 作者:
我跟WonJia打算寫一個(gè)類似于《Flex編程注意之XX》的系列文章,此系列文章主要就是介紹一些我們?cè)趯?shí)際的項(xiàng)目中發(fā)現(xiàn)的一些Flex的問題,而這些問題可能已經(jīng)被人發(fā)現(xiàn)了,也可能沒被人發(fā)現(xiàn),所以在此記錄一下。
其實(shí)很簡(jiǎn)單的一個(gè)注意地方,當(dāng)使用了ViewStack并且將其height設(shè)定為100%,同時(shí)在其中添加了多個(gè)child container(A 和 B)。那么ViewStack的高度將會(huì)怎樣呢?這個(gè)例子可以應(yīng)用與:多個(gè)組件而不同的狀態(tài),例如:在某些情況我需要顯示A的UI,另外在某些地方我需要顯示B的UI,然而它們的高度與寬度都是不一樣的,那么假設(shè)A的高度要大于B的高度,那么當(dāng)我想要顯示B的時(shí)候,就會(huì)發(fā)生如下的問題,雖然我將其Application的高度設(shè)定的與B一致,按照通常的做法,由于ViewStack的height為100%,那么則認(rèn)為它與Application的高度是一致的那么那個(gè)空白的邊是如何出現(xiàn)的呢?其實(shí)這個(gè)地方在使用ViewStack的時(shí)候,有一個(gè)注意點(diǎn),那就是:當(dāng)ViewStack的height設(shè)定為100%時(shí),ViewStack的高度不會(huì)與Application的高度一直,而它的高度會(huì)根據(jù)其中的最高的那個(gè)child一致。其實(shí)這個(gè)特性在簡(jiǎn)單的例子中是非常容易被發(fā)現(xiàn)的,但是假設(shè)在做項(xiàng)目的時(shí)候,很多的height都設(shè)定為100%同時(shí)又包含了多個(gè)container,那么這個(gè)時(shí)候是非常難發(fā)現(xiàn)的,跟大家在說一個(gè)技巧:如果遇到這樣的情況,那么將這些多個(gè)container用不同的背景色加以區(qū)分,最后就可以看到是哪個(gè)container出現(xiàn)問題了!還是那句話,可能這個(gè)特性已經(jīng)很多人知道了,但是我還是要在這里指出,做一個(gè)備份和讓不知道的朋友也了解一下,免得多走彎路:)具體請(qǐng)看如下的代碼:(代碼是在componentexplorer的基礎(chǔ)上修改的。)
<?xml version="1.0"?>
<!-- Simple example to demonstrate the ViewStack layout container. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" height="500" creationComplete="{ myViewStack.selectedIndex = 1 }">
<!-- Define the ViewStack and the three child containers and have it
resize up to the size of the container for the buttons. -->
<mx:ViewStack id="myViewStack" borderStyle="solid" width="100%" height="100%">
<mx:Canvas id="search" backgroundColor="#FFFFCC" label="Search" width="100%" height="100">
<mx:Label text="Search Screen" color="#000000" />
</mx:Canvas>
<mx:Canvas id="custInfo" backgroundColor="#CCFFFF" label="Customer Info" width="100%" height="200">
<mx:Label text="Customer Info" color="#000000" />
</mx:Canvas>
<mx:Canvas id="accountInfo" backgroundColor="#FFCCFF" label="Account Info" width="100%" height="300">
<mx:Label text="Account Info" color="#000000" />
</mx:Canvas>
</mx:ViewStack>
</mx:Application>
復(fù)制代碼 代碼如下:
<?xml version="1.0"?>
<!-- Simple example to demonstrate the ViewStack layout container. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" height="500" creationComplete="{ myViewStack.selectedIndex = 1 }">
<!-- Define the ViewStack and the three child containers and have it
resize up to the size of the container for the buttons. -->
<mx:ViewStack id="myViewStack" borderStyle="solid" width="100%" height="100%">
<mx:Canvas id="search" backgroundColor="#FFFFCC" label="Search" width="100%" height="100">
<mx:Label text="Search Screen" color="#000000" />
</mx:Canvas>
<mx:Canvas id="custInfo" backgroundColor="#CCFFFF" label="Customer Info" width="100%" height="200">
<mx:Label text="Customer Info" color="#000000" />
</mx:Canvas>
<mx:Canvas id="accountInfo" backgroundColor="#FFCCFF" label="Account Info" width="100%" height="300">
<mx:Label text="Account Info" color="#000000" />
</mx:Canvas>
</mx:ViewStack>
</mx:Application>
您可能感興趣的文章:
- Android中父View和子view的點(diǎn)擊事件處理問題探討
- Android 自定義View的使用介紹
- ScrollView與ListView合用(正確計(jì)算Listview的高度)的問題解決
- Android動(dòng)態(tài)添加View的問題解決方法
- android自定義進(jìn)度條漸變色View的實(shí)例代碼
- android開發(fā)教程之view組件添加邊框示例
- Android中通過view方式獲取當(dāng)前Activity的屏幕截圖實(shí)現(xiàn)方法
- Android獲取屏幕或View寬度和高度的方法
- 詳解iOS tableViewCell自適應(yīng)高度 第三發(fā)類庫
- Android獲取view高度的三種方式
相關(guān)文章
Flex tree組件數(shù)據(jù)源、圖標(biāo)等修改
在flex中Tree組件的使用。使用XML作為Tree組件的數(shù)據(jù)源。2009-05-05Flex與.NET互操作 使用HttpService、URLReqeust和URLLoader加載/傳輸數(shù)據(jù)
在前兩篇文章中分別介紹了Flex與.NET的WebService之間的數(shù)據(jù)交互通信知識(shí),本文將介紹另外一種加載數(shù)據(jù)以及發(fā)起請(qǐng)求的方式。2009-06-06Flex與.NET互操作(十):FluorineFx.Net的及時(shí)通信應(yīng)用(ApplicationAdapter)(一)
使用FluorineFx.Net開發(fā)的每一個(gè)實(shí)時(shí)通訊功能應(yīng)用都擁有一個(gè)應(yīng)用程序適配器(ApplicationAdapter),用來管理整個(gè)實(shí)時(shí)通訊應(yīng)用的生命周期,以及接受和拒絕客戶端的連接等。2009-06-06Flex和.NET協(xié)同開發(fā)利器FluorineFx Flex與.NET互操作
在本系列前面幾篇文章中分別介紹了通過WebService、HTTPService、URLLoader以及FielReference等組件或類來完成Flex與.NET服務(wù)端的通信的相關(guān)知識(shí)點(diǎn)。2009-06-06Flex 如何得到itemRenderer里面的內(nèi)容
itemRenderer里面的內(nèi)容 獲取技巧。2009-07-07Flex ShareObject簡(jiǎn)單應(yīng)用
Share object一般用來保存前來訪問的用戶的個(gè)人信息到用戶的機(jī)器上。比如用戶登陸過后保存他的名字,下次訪問時(shí)自動(dòng)顯示,或者保存用戶的個(gè)性化設(shè)置等等。2009-06-06