在一個Flex移動項目中,我有一個簡單的itemRenderer,我試圖創建一個類似於ichat或iphone的「泡泡」發短信效果(只是讓你得到即將發生的事情)。但是,如果文字比屏幕更長,那麼它就不是一條線。如何防止itemRenderer中的容器超出列表容器的寬度?
如果我將持有矩形(創建泡泡效果)的組以及標籤設置爲100%,並且不會超過列表容器邊界,但該組始終爲100%,並且看起來不好努力保持文本週圍的「泡沫」。
反正所以,在我的itemRenderer頂部我試過指定:
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" width="100%" height="100%">
這是我的佈局我因爲msg_container
想通了100%我希望bubble_lable_group
只想不超過這一點,但寬度..它沒有...它只是跑了。我嘗試設置最大寬度,但不允許輸入百分比。而只是再說一次。我知道如果我將寬度設置爲100%,它可以防止邊緣發生變形,但是矩形「泡沫」會一直延伸,看起來很糟糕。
<s:VGroup id="main_container" horizontalAlign="left" paddingBottom="10" paddingTop="10"
verticalAlign="top" width="100%">
<s:VGroup id="name_container" width="100%">
<s:Label id="name_label" fontSize="20" fontWeight="bold" text="Name: " />
</s:VGroup>
<s:VGroup id="msg_container" width="100%" paddingLeft="20">
<s:Group id="bubble_lable_group">
<s:Rect id="the_bubble_shape" width="100%" height="100%" radiusX="15" radiusY="15" >
<s:fill>
<s:LinearGradient rotation="90">
<s:GradientEntry color="{grOne}"/>
<s:GradientEntry color="{grTwo}"/>
</s:LinearGradient>
</s:fill>
</s:Rect>
<s:Label id="msg_txt" width="100%" text="msg text here"
fontSize="18" color="#FFFFFF" paddingTop="15" paddingRight="15" paddingBottom="15" paddingLeft="15"/>
</s:Group>
</s:VGroup>
</s:VGroup>
任何想法或竅門,我可以拉動以達到我要去的效果,並將其保留在父List容器中?我很難過。
編輯: 這裏有一些截圖來說明問題:
請問您列表設置variableRowHeight爲真?截圖可能有助於和/或完整的可運行樣本。 – JeffryHouser
我添加了一些截圖來幫助說明問題。我不認爲火星移動列表有variableRowHeight似乎並不存在。但正如您在第二張屏幕截圖中看到的那樣,它會在寬度設置爲100%時調整高度。我只是不明白爲什麼bubble_lable_group超過msg_container。我想,因爲我沒有指定任何東西,只是認爲它可以運行。 – brybam
在Spark中,您在佈局類上設置variableRowHeight;不是實際的清單。 – JeffryHouser