2012-04-07 79 views
0

所以我想要的是左側的ToggleSwitch和右側的Button。當屏幕太小時,我想讓Button變小並顯示一些「...」。所以我用:Flex MXML佈局問題

<s:Group width="100%"> 
    <s:layout> 
     <s:HorizontalLayout verticalAlign="middle"/> 
    </s:layout> 
    <s:ToggleSwitch /> 
    <s:Spacer width="100%"/> 
    <s:Button label="TestTestTestTestTest"/> 
</s:Group> 

這工作得很好,直到屏幕是如此之小,從按鈕的整個標籤文字好好嘗試一下適合。然後這兩個組件都在屏幕外部左右浮動。

所以,我想它使用的基本佈局:

<s:Group width="100%"> 
    <s:ToggleSwitch left="0" /> 
    <s:Button right="0" label="TestTestTestTestTest"/> 
</s:Group> 

好好嘗試一下工作無論是。當屏幕太小時,按鈕將浮動在切換開關上。 那麼我怎樣才能使這個工作?

回答

3

您可能已經差不多在這裏了,如果您想並排放置,只需從一個HGroup開始,並防止佈局對其父級的「邊界違反」,請啓用clipAndEnableScrolling屬性。

<s:HGroup width="100%" clipAndEnableScrolling="true"> 
    <s:ToggleSwitch /> 
    <s:Rect width="100%" /> 
    <s:Button label="TestTestTestTestTest"/> 
</s:HGroup> 
+0

非常感謝!這完成了這項工作。不知道這個屬性.. :) – MorbZ 2012-04-07 16:32:56

+0

嗯任何想法如何讓按鈕顯示「...」截斷時? – MorbZ 2012-04-07 16:35:53

+0

在基於文本的組件上爲您處理截斷,但顯然不會在其他按鈕中使用截斷 - 我不記得這是否適用於Halo。它涉及更多一點,但實際上你可以使用SkinComponent來做到這一點。如果您對ButtonSkin進行子類化,從這裏開始,您可以編寫一個簡單的算法,該算法正確查看剩餘空間與標籤顯示的總寬度之間的差距,然後使用substr/substring至少3個字符並插入省略。 – 2012-04-08 04:43:27