TileGroup: menyegarkan tata letak saat mengubah ukuran

Saya baru menggunakan mxml untuk membuat aplikasi.

Pada dasarnya, saya membuat daftar ubin (6 di antaranya) menggunakan TileGroup. Saat diinisialisasi pada tampilan potret, tampak bagus (3 di baris pertama dan 3 di baris kedua).

Namun, saat saya mengubah orientasi, saya ingin ubin digambar ulang berdasarkan lebar dan tinggi baru.

Dari stack overflow, saya menemukan bahwa saya dapat mendengarkan acara pengubahan ukuran. Tapi, saya tidak tahu cara membuat TileGroup menggambar ulang.

Awalnya, saya pikir saya bisa menggunakan autoLayout untuk TileGroup. Tapi, itu tidak berhasil. Saya kesulitan mencari solusi (mungkin saya tidak menggunakan kata kunci yang tepat).

Apakah ada fungsi yang bisa saya panggil untuk menggambar ulang?

Atau adakah cara lain untuk membuat ubin saya responsif terhadap orientasi?

Ini kode saya:

<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>   

Please advice! Thanks!

Justin


person juworld    schedule 08.11.2013    source sumber
comment
Tata letak ulang berdasarkan pengubahan ukuran harus dilakukan secara otomatis. Anda harus memberikan beberapa kode agar kami dapat melihat apa yang salah.   -  person RIAstar    schedule 08.11.2013
comment
Hai RIAstar, maksud Anda saya tidak perlu melakukan apa pun dan Ubin saya akan digambar ulang sendiri? Izinkan saya mengedit posting saya dan menunjukkan file mxml sederhana saya.   -  person juworld    schedule 08.11.2013
comment
Memang itulah yang saya maksud. Melihat kode Anda: jika Anda tidak memberikan aturan ukuran pada TileGroup, ia akan menyesuaikan ukurannya sendiri agar sesuai dengan kontennya, yang jelas tidak mengubah apakah Anda dalam mode potret atau lanskap. Saya tidak begitu yakin apa yang Anda coba lakukan, tetapi pengaturan width="100%" height="100%" akan meregangkan TileGroup ke seluruh layar dan dengan demikian jumlah kolom/baris akan berubah ketika keadaan berubah.   -  person RIAstar    schedule 09.11.2013
comment
Terima kasih RIAstar, sudah memperbaikinya! Bisakah Anda mengirimkan pujian Anda sebagai jawaban? Bersulang!   -  person juworld    schedule 09.11.2013


Jawaban (1)


Tata letak ulang berdasarkan pengubahan ukuran terjadi secara otomatis. Namun jika Anda tidak memberikan suatu aturan ukuran tertentu pada sebuah wadah (TileGroup Anda dalam contoh ini) maka ia akan menerapkan perilaku ukuran defaultnya, yang sesuai dengan kontennya. Tentu saja konten tersebut tidak berubah baik Anda dalam keadaan potret atau lanskap, jadi tidak terjadi apa-apa.

Saya tidak begitu yakin apa yang Anda coba lakukan, tetapi pengaturan width="100%" height="100%" akan meregangkan TileGroup ke seluruh layar. Yaitu. ukurannya akan dihitung berdasarkan ukuran wadah induknya, bukan kontennya. Dengan demikian jumlah kolom/baris akan berubah seiring perubahan keadaan.

person RIAstar    schedule 09.11.2013