在Flex 3中,我曾經能夠使用2個面板,在HBox中將其寬度設置爲100%。如果我將第一個面板的寬度屬性更改爲更小,比如說20%,那麼第二個會自動更新並填充第一個調整大小時第一個佔用的空間。水平佈局:mx vs spark - 調整兒童大小
我注意到火花,這不會發生。我有一個HorizontalLayout應用程序,左側有一個可調整大小的面板控件,右側有一個寬度爲「100%」的面板。當我調整左側面板的大小時,右側面板不會執行任何操作。所以我最終得到了一個乾淨的可調整大小的面板,一堆浪費的空間,還有我的右側面板就坐在那裏。
我期望的是,由於右側面板的寬度爲「100%」,因此如果其左側的面板被調整大小,那麼右側面板中將會有相應的增長以填充。
我試過手動觸發驗證屬性和大小沒有效果。我想知道在HorizontalLayout中發生了什麼變化,不再允許這種技術工作。我也想知道哪些解決方案可用?
下面是一些格格格格:
<mx:Application>
<mx:Script>
<![CDATA[
protected function resizeClick(event:MouseEvent):void
{
pnl1.percentWidth = 10; // When this would execute, pnl2 would automatically
// fill in the space previously held by pnl1.
}
]]>
</mx:Script>
<mx:HBox width="100%" height="100%">
<mx:Panel id="pnl1" width="40%" height="100%"> // Uses 40%
<mx:Button id="resizeButton" click="resizeClick(event)"/>
</mx:Panel>
<mx:Panel id="pnl2" width="100%" height="100%"/> // Fills in the rest of the available space
</mx:HBox>
</mx:Application>
Flex 4.5中不會自動更新PNL2的大小時的PNL1的大小變化。我會認爲,因爲正在使用HorizontalLayout,當兩個孩子的寬度發生變化時,這兩個孩子都會更新。但似乎並非如此。我知道我可以創建兩個狀態來完成這個任務,但是我在想,我不應該爲了一件如此微不足道的事情。
感謝您的評論。如果我們有一些控制「執行」百分比調整,這個例子可以正常工作。在我的情況下,我使用了一個「可摺疊面板」,當可摺疊面板標題按鈕被點擊時,它可以自行增長和縮小。我試圖讓面板2在面板1的尺寸改變時自動調整其大小。 – Shawn