質問

私はアプリを構築するためにMXMLを使用することは初めてです。

基本的に、TileGroupを使用してタイルのリスト(そのうち6人)を作成しています。ポートレートビューで初期化すると、見栄えが良くなります(最初の行は3行、2番目の行は3列目)。

ただし、方向を変えるときは、新しい幅と高さに基づいてタイルを再描画させたいと思います。

Stack Overflowから、Resizeイベントを聴くことができることがわかりました。しかし、タイルグループに再描画する方法がわかりません。

最初は、TileGroupにAutoLayoutを使用できると思っていました。しかし、それはトリックをしませんでした。私は解決策を探すのに苦労しています(たぶん、私は正しいキーワードを使用していなかったかもしれません)。

再描画するために呼び出すことができる関数はありますか?

それとも、タイルを向きに敏感にする別の方法はありますか?

これが私のコードです:

<components:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
             xmlns:s="library://ns.adobe.com/flex/spark" xmlns:components="spark.components.*" 
             title="Forex Calculator">
<components:states>
    <s:State name="portrait"/>
    <s:State name="landscape"/>
</components:states>
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<s:TileGroup id="mainGroup" includeIn="portrait, landscape" autoLayout="true">
    <s:Rect width="75" height="75">
        <s:fill>
            <s:SolidColor color="0xd54f4f"/>
        </s:fill>
    </s:Rect>
    <s:Rect width="75" height="75">
        <s:fill>
            <s:SolidColor color="0x2f977d"/>
        </s:fill>
    </s:Rect>
    <s:Rect width="75" height="75">
        <s:fill>
            <s:SolidColor color="0xfffca2"/>
        </s:fill>
    </s:Rect>
    <s:Rect width="75" height="75">
        <s:fill>
            <s:SolidColor color="0xfffca2"/>
        </s:fill>
    </s:Rect>
    <s:Rect width="75" height="75">
        <s:fill>
            <s:SolidColor color="0xfffca2"/>
        </s:fill>
    </s:Rect>
</s:TileGroup>   

ご意見をお聞かせください!ありがとう!

ジャスティン

役に立ちましたか?

解決

サイズ変更に基づく再レイアウトは自動的に行われます。ただし、コンテナを提供していない場合(YOU TileGroup この例では)いくつかの特定のサイジングルールを使用すると、そのコンテンツに適合するデフォルトのサイジング動作を適用します。明らかに、そのコンテンツはあなたが肖像画であろうと風景状態であろうと変わらないので、何も起こりません。

私はあなたが何をしようとしているのか正確にはわかりませんが、設定 width="100%" height="100%" を伸ばします TileGroup 画面全体にわたって。 IEサイズは、コンテンツの代わりに親コンテナのサイズに基づいて計算されます。したがって、状態が変わると列/行の数が変わります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top