RadialLayout
แจกมาตราส่วน ตัวเลข หรือสัญลักษณ์รอบๆ วงกลม radius ควบคุมระยะห่างจากจุดศูนย์กลางถึงจุดศูนย์กลางโครงร่างของ View และ startAngle และ sweepAngle ควบคุมช่วงการกระจาย
ตัวอย่าง
function main() {
return (
<RadialLayout
radius={70}
startAngle={-90}
sweepAngle={270}
includeEnd={true}
>
{[0, 60, 120, 180].map((value) => (
<Text key={value}>{value}</Text>
))}
</RadialLayout>
);
}
การใช้งาน
- รัศมีกำหนดจุดศูนย์กลางลูก ไม่ใช่ขอบกรอบ includeEnd=false แบ่ง n ส่วน true แบ่ง n−1 วงเต็มที่รวมปลายทำให้ต้นท้ายทับกัน childRotation ควบคุมทิศลูก
- มุมเป็นองศา 0 ขวา 90 ลง sweep บวกตามเข็ม startAngle วน 360 ส่วน sweepAngle จำกัด −360…360 โดย 0 ไม่วาด ±360 เต็มวง wrap:360 ใช้ได้เฉพาะ startAngle
- ใช้ ID ข้อมูลที่คงที่เป็น key เพื่อรักษาตัวตนและแอนิเมชัน อย่าใช้อินเด็กซ์เป็น ID ถาวรเมื่อมีการเปลี่ยนลำดับ
คุณสมบัติ
children?ViewContentเนื้อหาการวาดของมุมมองลูก
radius?numberรัศมีเป็นพอยต์ radius ใช้สองแกน radiusX/radiusY แทนแต่ละแกน ค่าลบเป็น 0
80radiusX?numberรัศมีเป็นพอยต์ radius ใช้สองแกน radiusX/radiusY แทนแต่ละแกน ค่าลบเป็น 0
80radiusY?numberรัศมีเป็นพอยต์ radius ใช้สองแกน radiusX/radiusY แทนแต่ละแกน ค่าลบเป็น 0
80startAngle?numberมุมเริ่มต้นเป็นองศา ปรับด้วยโมดูโล 360 ขณะสุ่มตัวอย่าง
-90sweepAngle?numberมุมกวาดเป็นองศา จำกัดไว้ที่ -360…360 ขณะสุ่มตัวอย่าง ค่าบวกหมุนตามเข็มนาฬิกา ไม่รองรับ wrap
360includeEnd?booleanรวมจุดปลายมุมในการจัดวางหรือไม่ วงกลมเต็มควรใช้ false เพื่อไม่ให้ต้นกับท้ายซ้อน
falsechildRotation?"none" | "radial" | "tangent"none ไม่หมุน radial ตามแนวรัศมี tangent เพิ่ม 90 องศา
"none"คุณสมบัติทั่วไป
width?number | "auto" | "fill"ความกว้างเป็นพอยต์ ปรับขนาดอัตโนมัติ หรือเติมเต็มพื้นที่แม่
100height?number | "auto" | "fill"ความสูงเป็นพอยต์ ปรับขนาดอัตโนมัติ หรือเติมเต็มพื้นที่แม่
80padding?numberระยะขอบภายในเนื้อหา หน่วยพอยต์
0x?numberเลื่อนภาพเป็นพอยต์: x ไปขวา y ลงล่าง ไม่เปลี่ยนพื้นที่ในเลย์เอาต์
0y?numberเลื่อนภาพเป็นพอยต์: x ไปขวา y ลงล่าง ไม่เปลี่ยนพื้นที่ในเลย์เอาต์
0transform?ViewTransformแปลงทั้ง View โดยไม่เปลี่ยนเลย์เอาต์ ระยะเลื่อนเป็นพอยต์ หมุน/เอียงเป็นองศา สเกล 1 ไม่เปลี่ยน จุดยึด 0–1
{rotation: 0}background?Paintสีหรือไล่สีพื้นหลัง clear คือโปร่งใส
"clear"opacity?numberความทึบทั้ง View: 0 โปร่งใส 1 ทึบ
1cornerRadius?numberรัศมีมุมโค้งเป็นพอยต์
0clipped?booleanตัดส่วนที่วาดเกินขอบ View
falseclip?"rectangle" | "ellipse"รูปทรงตัด rectangle หรือ ellipse; Material ใช้ false เพื่อปิดได้
"rectangle"mask?View | nullView มาสก์อัลฟา จัดกึ่งกลางโดยไม่ส่งผลต่อเลย์เอาต์; null ปิดการใช้มาสก์
<Circle width="fill" height="fill" background="white"/>zIndex?numberลำดับวาดระหว่างองค์ประกอบระดับเดียวกัน ค่ายิ่งมากยิ่งอยู่หน้า
0blur?numberรัศมีเบลอเป็นพอยต์ 0 คือปิด
4innerShadow?DrawingEffectสี ความทึบ รัศมีเบลอ และระยะ x/y ของเอฟเฟกต์ ระยะเป็นพอยต์
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectสี ความทึบ รัศมีเบลอ และระยะ x/y ของเอฟเฟกต์ ระยะเป็นพอยต์
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?Colorสีเงาภายนอก
HDR("black")shadowOpacity?numberความทึบเงา 0–1; 0 ซ่อนเงา
0shadowRadius?numberรัศมีเบลอเงาภายนอกเป็นพอยต์
4shadowX?numberเลื่อนเงาเป็นพอยต์: x ไปขวา y ลงล่าง
0shadowY?numberเลื่อนเงาเป็นพอยต์: x ไปขวา y ลงล่าง
2animations?RadialLayoutAnimation[]แอนิเมชันเมื่อคุณสมบัติเปลี่ยน duration/delay เป็นวินาที from/to เป็นปลายทาง repeat/autoreverse ควบคุมการซ้ำ wrap เป็นคาบ
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberตัวระบุที่คงที่ระหว่างองค์ประกอบระดับเดียวกัน
ตัวอย่างใช้งาน
function main() {
return (
<RadialLayout
width={200}
height={200}
radius={76}
startAngle={-135}
sweepAngle={270}
includeEnd={true}
>
{[0, 50, 100, 150, 200].map((value) => (
<Text key={value} fontSize={14}>
{value}
</Text>
))}
</RadialLayout>
);
}
ภาพเคลื่อนไหว
widthheightpaddingxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYradiusradiusXradiusYstartAnglesweepAngletransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYเมื่อไม่ระบุ
ตารางคือพฤติกรรมเมื่อไม่ระบุที่ตรวจจากโค้ด ตัวอย่างไม่ใช่ค่าเริ่มต้น หากต้องการผลแน่นอนให้ระบุค่า ขนาดและสีตามบริบทไม่ใช่ค่าคงที่
| คุณสมบัติ | เมื่อไม่ระบุ |
|---|---|
radius | 80 |
startAngle | -90 |
sweepAngle | 360 |
includeEnd | false |
childRotation | "none" |