次のコードでは、2つの同一の境界コンテナ(bordercontainer1 & bordercontainer2)をそれぞれの周囲グループ(surroundinggroup1 & surroundinggroup2)と一緒に使用していることがわかります。グループは基底のコンポーネントのmaxwidthを無視します
bordercontainersの最大幅は250ピクセル、幅は100%です。 基本的には、最大250ピクセルのスペースを取るようにしたいが、空き容量が少ない場合はできるだけ多く取り上げる。
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<s:HGroup id="maingroup" width="100%">
<s:Group id="surroundinggroup1">
<s:BorderContainer id="bordercontainer1" height="50" maxWidth="250" width="100%">
<s:Label text="test"/>
</s:BorderContainer>
</s:Group>
<s:Group id="surroundinggroup2">
<s:BorderContainer id="bordercontainer2" height="50" maxWidth="250" width="100%">
<s:Label text="test"/>
</s:BorderContainer>
</s:Group>
</s:HGroup>
</s:WindowedApplication>
問題はsurroundinggroupsがmaxWidthにを無視して「テスト」を含むラベルが収まるようのBorderContainerを描画するのに必要な最小幅を使用するように見えるということです。
を私は設定考え出し周辺グループの幅を100%に設定すると問題は解決しますが、周辺グループはできるだけ多くのスペースを占有し、2つの境界コンテナ間にギャップを生じさせます。
唯一の解決策は、私はそれをしたいのようにレイアウトされ、surroundinggroupsを削除するように思わ:
ここでの問題は、実際のアプリケーションでは、これらのsurroundinggroupsは、いくつかの他が含まれている、ということですコンポーネントとロジック。それらを削除すると、かなりの変更が生じる可能性があります。 これらの周辺グループを維持しながら目的の結果(画像3)を達成する方法はありませんか?
いいえ、私は彼らに250ピクセルのスペースを取ってもらいたいですが、利用可能なスペースが少ない場合は、必要なものだけを取り上げてください。ラベルを250に設定し、コンテナが250より小さい場合、ボーダコンテナはコンテナの外側で継続します。私はそれを縮小したい。しかし、250ピクセルが利用可能な場合は、それをすべて取る。これが明確になることを願って、説明するのは簡単ではありません。 – Pmarcoen
私はあなたが今何を望むかを見ます。私はまだ解決策はありませんが、問題はmaxWidthを無視しているのではなく、width = "100%"を使用していないということです(それはありますが)。 maxWidthは250を超える幅を制限しますが、これまでのサイズにはなりません。幅が250を超えるまでは効果がありません.Width = 100%も予想通りに動作していますが、幅が設定されていません。これが必要最小限のサイズを必要とする理由です。もっと時間があれば解を見つけるでしょう。そうでなければ、この情報で何かできることを願っています。 –
それはちょうどロビンの右です。いずれにせよあなたの時間をありがとう! – Pmarcoen