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. صفر لا يرسم و±360 دورة. wrap:360 لـ startAngle فقط.
- استخدم معرفات بيانات ثابتة في key للحفاظ على هوية View أثناء التحديث والحركة. فهرس المصفوفة لا يصلح هوية دائمة عند إعادة الترتيب.
الخصائص
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 | nullعرض قناع ألفا. يتم توسيطه دون التأثير على التخطيط؛ تعطل 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" |