TileGroup: รีเฟรชเค้าโครงเมื่อปรับขนาด

ฉันเพิ่งเริ่มใช้ mxml ในการสร้างแอป

โดยพื้นฐานแล้ว ฉันกำลังสร้างรายการไทล์ (6 รายการ) โดยใช้ TileGroup เมื่อเริ่มต้นในมุมมองแนวตั้ง จะดูดี (3 ในแถวแรกและ 3 ในแถวที่สอง)

อย่างไรก็ตาม เมื่อฉันเปลี่ยนการวางแนว ฉันต้องการให้ไทล์วาดใหม่ตามความกว้างและความสูงใหม่

จาก stack overflow ฉันพบว่าสามารถฟังการปรับขนาดเหตุการณ์ได้ แต่ฉันไม่รู้ว่าจะทำให้ TileGroup วาดใหม่ได้อย่างไร

ตอนแรกฉันคิดว่าฉันสามารถใช้ autoLayout สำหรับ TileGroup ได้ แต่นั่นไม่ได้ทำเคล็ดลับ ฉันกำลังประสบปัญหาในการค้นหาวิธีแก้ปัญหา (บางทีฉันอาจไม่ได้ใช้คำสำคัญที่ถูกต้อง)

มีฟังก์ชั่นที่ฉันสามารถเรียกเพื่อวาดใหม่ได้หรือไม่?

หรือมีวิธีอื่นในการทำให้ไทล์ของฉันตอบสนองต่อการวางแนวหรือไม่?

นี่คือรหัสของฉัน:

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

จัสติน


person juworld    schedule 08.11.2013    source แหล่งที่มา
comment
การจัดวางใหม่ตามการปรับขนาดควรเป็นแบบอัตโนมัติ คุณควรระบุรหัสเพื่อให้เราดูว่าเกิดอะไรขึ้น   -  person RIAstar    schedule 08.11.2013
comment
สวัสดี RIAstar คุณหมายถึงว่าฉันไม่ต้องทำอะไร แล้วไทล์ของฉันจะวาดใหม่ใช่ไหม ให้ฉันแก้ไขโพสต์ของฉันและแสดงไฟล์ mxml แบบธรรมดาของฉันให้คุณดู   -  person juworld    schedule 08.11.2013
comment
นั่นคือสิ่งที่ฉันหมายถึงจริงๆ การดูโค้ดของคุณ: หากคุณไม่ให้กฎการกำหนดขนาดแก่ TileGroup มันจะปรับขนาดตัวเองให้พอดีกับเนื้อหา ซึ่งเห็นได้ชัดว่าจะไม่เปลี่ยนแปลงไม่ว่าคุณจะอยู่ในแนวตั้งหรือแนวนอน ฉันไม่แน่ใจว่าคุณกำลังพยายามทำอะไร แต่การตั้งค่า width="100%" height="100%" จะขยาย TileGroup ไปทั่วหน้าจอ ดังนั้นจำนวนคอลัมน์/แถวจะเปลี่ยนไปเมื่อสถานะเปลี่ยนแปลง   -  person RIAstar    schedule 09.11.2013
comment
ขอบคุณ RIAstar ที่แก้ไขได้! คุณสามารถโพสต์คำชมของคุณเป็นคำตอบได้หรือไม่? ไชโย!   -  person juworld    schedule 09.11.2013


คำตอบ (1)


การจัดวางใหม่ตามการปรับขนาดจะเกิดขึ้นโดยอัตโนมัติ อย่างไรก็ตาม หากคุณไม่ได้ระบุกฎการกำหนดขนาดเฉพาะให้กับคอนเทนเนอร์ (TileGroup ของคุณในกรณีนี้) คอนเทนเนอร์จะใช้ลักษณะการปรับขนาดเริ่มต้นซึ่งก็คือเพื่อให้พอดีกับเนื้อหา แน่นอนว่าเนื้อหาจะไม่เปลี่ยนแปลงไม่ว่าคุณจะอยู่ในแนวตั้งหรือแนวนอน ดังนั้นจึงไม่มีอะไรเกิดขึ้น

ฉันไม่แน่ใจว่าคุณกำลังพยายามทำอะไร แต่การตั้งค่า width="100%" height="100%" จะทำให้ TileGroup ขยายไปทั่วทั้งหน้าจอ เช่น. ขนาดจะถูกคำนวณตามขนาดของคอนเทนเนอร์หลักแทนที่จะเป็นเนื้อหา ดังนั้นจำนวนคอลัมน์/แถวจะเปลี่ยนไปเมื่อสถานะเปลี่ยนแปลง

person RIAstar    schedule 09.11.2013