แผงจะอธิบายพร็อพเพอร์ตี้ของพื้นที่ที่แผงนั้นครอบครองและทำหน้าที่เป็นคอนเทนเนอร์ของแอป คุณใช้การกำหนดค่า XML เพื่อกำหนดแผง ซึ่งเป็นวิธีที่ยืดหยุ่นและไม่ต้องเขียนโค้ดในการปรับแต่ง UI หากต้องการจัดการอินสแตนซ์และสถานะ ระบบจะติดตามแผงที่กำหนด
รายการแผง
UI ของระบบจะโหลดคำจำกัดความของแผงจากทรัพยากรอาร์เรย์ชื่อ
window_states
อาร์เรย์ทรัพยากรนี้ชี้ไปยังไฟล์ XML ซึ่งมีการกำหนดค่าแผงแต่ละรายการ แนวทางแบบรวมศูนย์นี้หมายความว่าแผงที่จัดการโดย Scalable UI จะโหลดตามที่ตั้งใจไว้และพร้อมให้ระบบใช้งาน
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="window_states">
<item>@xml/app_panel</item>
<item>@xml/back_panel</item>
...
</array>
</resources>
คำจำกัดความของแผง
แต่ละแผงในเฟรมเวิร์ก UI ที่ปรับขนาดได้จะกำหนดด้วยแท็ก XML ชื่อ
<TaskPanel>
ซึ่งอธิบายพร็อพเพอร์ตี้ของคอนเทนเนอร์แอป UI ของระบบ
จะโหลดคำจำกัดความของแผงเหล่านี้และติดตามแผงจนกว่าจะมีการโหลดการกำหนดค่าอื่น
เช่น โดยการเปลี่ยนแปลงการกำหนดค่าเนื่องจากการหมุนเวียนหรือคำขอของระบบที่ชัดเจน <TaskPanel>
เป็นคอมโพเนนต์พื้นฐานสำหรับ
การสร้างประสบการณ์ที่ปรับแต่งผ่านคอมโพเนนต์ UI ที่กำหนดค่าได้
แอตทริบิวต์ XML
แท็ก <TaskPanel>
สามารถมีแอตทริบิวต์เหล่านี้ที่คุณใช้เพื่อกำหนดสถานะ
และการเปลี่ยนสถานะได้
แอตทริบิวต์ | สถานะ | คำอธิบาย |
---|---|---|
id |
บังคับ | ระบุตัวระบุที่ไม่ซ้ำกันสำหรับแผง แอตทริบิวต์นี้ใช้เพื่อ
ดึงข้อมูลแผงจาก PanelPool และจัดการสถานะของแผง
ภายในระบบ |
role |
บังคับ | กำหนดวัตถุประสงค์หรือฟังก์ชันของแผงในระบบ ค่า อาจอ้างอิงถึงทรัพยากรสตริง อาร์เรย์สตริงของชื่อคอมโพเนนต์ หรือ รหัสเลย์เอาต์ เช่น สามารถกำหนดกิจกรรมที่คงอยู่ซึ่งควร แสดงในแผงเสมอ หรือเลย์เอาต์ที่จะขยาย |
defaultVariant |
ไม่บังคับ | ระบุรหัสของตัวแปรที่แผงควรใช้ในตอนแรก เมื่อโหลด หากไม่ได้ระบุไว้ ระบบจะใช้ตัวแปรที่กำหนดไว้ตัวแรกเป็นค่าเริ่มต้น ได้ |
displayId |
ไม่บังคับ | ระบุรหัสของจอแสดงผลที่ต้องการให้แผงปรากฏ |
defaultLayer |
ไม่บังคับ | ระบุลำดับ Z เริ่มต้นสำหรับตัวแปรของแผงได้หากตัวแปรไม่ได้กำหนดเลเยอร์อย่างชัดเจน |
controller |
ไม่บังคับ อาจมีการเปลี่ยนแปลง |
อ้างอิงทรัพยากร (โดยปกติคือรหัส XML) ที่กำหนดตัวควบคุมเฉพาะแผง ซึ่งอนุญาตให้จัดเก็บและส่งค่าการกำหนดค่า ไปยังตัวควบคุมแผงที่กำหนดเอง ตัวควบคุมเหล่านี้ควรใช้
อินเทอร์เฟซ |
องค์ประกอบย่อย XML
แท็ก <TaskPanel>
สามารถมีแอตทริบิวต์เหล่านี้เพื่อกำหนดลักษณะและ
ลักษณะการทำงานเริ่มต้น
แอตทริบิวต์ | คำอธิบาย |
---|---|
<Variant> |
แท็กที่ซ้อนกันจะอธิบายการกำหนดค่าภาพที่เฉพาะเจาะจงสำหรับแผงใน เวลาใดก็ตาม แผงอาจมีหลายตัวแปร โดยแต่ละตัวแปรจะมี รหัสที่ไม่ซ้ำกัน แต่ละตัวแปรจะกำหนดพร็อพเพอร์ตี้ เช่น ขอบเขต การแสดงผล เลเยอร์ อัลฟ่า รัศมีมุม และระยะขอบสำหรับการกำหนดค่านั้นๆ ผลิตภัณฑ์ย่อย ยังรับช่วงพร็อพเพอร์ตี้จากผลิตภัณฑ์ย่อยระดับบนได้ด้วย |
<KeyFrameVariant> |
ส่วนขยายของ <Variant> ช่วยให้สามารถประมาณค่า
คุณสมบัติภาพระหว่างตัวแปรต่างๆ ตามค่าเศษส่วนต่อเนื่อง (0 ถึง 1) และใช้สำหรับการเปลี่ยนผ่านที่ราบรื่นและไดนามิก
เช่น ระหว่างการลาก เมื่อสถานะของแผง
ขึ้นอยู่กับอินพุตต่อเนื่อง เช่น จำนวนการลาก |
<Transitions> |
แท็กที่ซ้อนกันมีคอลเล็กชันของ แต่ละ |
โค้ดตัวอย่าง
<Panel id="@+id/panelId"
role="@array/roleValue"
defaultVariant="@id/closed"
displayId="0" >
<Variant id="@+id/base">
<Bounds left="0" top="0" width="100%" height="100%"/>
</Variant>
<Variant id="@+id/opened" parent="@id/base">
<Visibility isVisible="true"/>
</Variant>
<Variant id="@+id/closed" parent="@id/base">
<Visibility isVisible="false"/>
</Variant>
<Transitions>
<Transition fromVariant="@id/closed"
toVariant="@id/opened"
onEvent="open_event"/>
<Event id="_System_TaskOpenEvent" panelId="@id/panelId" />
</Transition>
</Transitions>
</Panel>