2016-06-22 5 views
0

次のコードでは、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を描画するのに必要な最小幅を使用するように見えるということです。

enter image description here

を私は設定考え出し周辺グループの幅を100%に設定すると問題は解決しますが、周辺グループはできるだけ多くのスペースを占有し、2つの境界コンテナ間にギャップを生じさせます。

enter image description here

唯一の解決策は、私はそれをしたいのようにレイアウトされ、surroundinggroupsを削除するように思わ:

enter image description here

ここでの問題は、実際のアプリケーションでは、これらのsurroundinggroupsは、いくつかの他が含まれている、ということですコンポーネントとロジック。それらを削除すると、かなりの変更が生じる可能性があります。 これらの周辺グループを維持しながら目的の結果(画像3)を達成する方法はありませんか?

答えて

1

これはトリックを行う必要があります。何らかの理由で、周囲のグループにサイズの制約をかけたくないと思っていましたが、それはちょうど私の頭の中でした。私はsurroudinggroupsにmaxWidthと100%を移動し、Bordercontainerのwidth = "100%"もあなたが望むものにとって重要です。

<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" maxWidth="250" width="100%"> 
      <s:BorderContainer id="bordercontainer1" height="50" width="100%"> 
       <s:Label text="test"/> 
      </s:BorderContainer>   
     </s:Group> 
     <s:Group id="surroundinggroup2" maxWidth="250" width="100%"> 
      <s:BorderContainer id="bordercontainer2" height="50" width="100%"> 
       <s:Label text="test"/> 
      </s:BorderContainer>   
     </s:Group> 
    </s:HGroup> 
</s:WindowedApplication> 
+0

いいえ、私は彼らに250ピクセルのスペースを取ってもらいたいですが、利用可能なスペースが少ない場合は、必要なものだけを取り上げてください。ラベルを250に設定し、コンテナが250より小さい場合、ボーダコンテナはコンテナの外側で継続します。私はそれを縮小したい。しかし、250ピクセルが利用可能な場合は、それをすべて取る。これが明確になることを願って、説明するのは簡単ではありません。 – Pmarcoen

+0

私はあなたが今何を望むかを見ます。私はまだ解決策はありませんが、問題はmaxWidthを無視しているのではなく、width = "100%"を使用していないということです(それはありますが)。 maxWidthは250を超える幅を制限しますが、これまでのサイズにはなりません。幅が250を超えるまでは効果がありません.Width = 100%も予想通りに動作していますが、幅が設定されていません。これが必要最小限のサイズを必要とする理由です。もっと時間があれば解を見つけるでしょう。そうでなければ、この情報で何かできることを願っています。 –

+0

それはちょうどロビンの右です。いずれにせよあなたの時間をありがとう! – Pmarcoen

関連する問題