RadialLayout
Verteilen Sie Skalen, Zahlen oder Symbole im Kreis. radius steuert den Abstand von der Mitte zur Layoutmitte von View, und startAngle und sweepAngle steuern den Verteilungsbereich.
Beispiel
function main() {
return (
<RadialLayout
radius={70}
startAngle={-90}
sweepAngle={270}
includeEnd={true}
>
{[0, 60, 120, 180].map((value) => (
<Text key={value}>{value}</Text>
))}
</RadialLayout>
);
}
Verwendung
- Radien bestimmen Kindmittelpunkte, nicht die äußere Größe. includeEnd=false teilt in n, true in n−1 Abschnitte. Bei einem Vollkreis überlappen Anfang und Ende. childRotation bestimmt die Ausrichtung.
- Winkel in Grad: 0 rechts, 90 unten, positive Bögen im Uhrzeigersinn. startAngle modulo 360, sweepAngle auf −360…360 begrenzt. 0 ist leer, ±360 ein Vollkreis. wrap:360 nur für startAngle, nicht sweepAngle.
- Stabile Daten-IDs als key erhalten die View-Identität bei Aktualisierungen und Animationen. Bei veränderlicher Reihenfolge keinen Arrayindex als dauerhafte ID verwenden.
Eigenschaften
children?ViewContentUntergeordneter Zeicheninhalt.
radius?numberRadius in Punkten: radius für beide Achsen, radiusX/radiusY überschreiben einzeln; negative Werte werden 0.
80radiusX?numberRadius in Punkten: radius für beide Achsen, radiusX/radiusY überschreiben einzeln; negative Werte werden 0.
80radiusY?numberRadius in Punkten: radius für beide Achsen, radiusX/radiusY überschreiben einzeln; negative Werte werden 0.
80startAngle?numberStartwinkel in Grad, bei der Abtastung modulo 360 normalisiert.
-90sweepAngle?numberWinkelbereich in Grad, bei der Abtastung auf -360…360 begrenzt. Positive Werte verlaufen im Uhrzeigersinn; wrap wird nicht unterstützt.
360includeEnd?booleanEndwinkel in die Verteilung aufnehmen. Für einen Vollkreis false vermeidet doppelte Endpunkte.
falsechildRotation?"none" | "radial" | "tangent"none unverändert, radial folgt dem Radius, tangent dreht zusätzlich 90 Grad.
"none"Allgemeine Eigenschaften
width?number | "auto" | "fill"Breite in Punkten, automatische Größe oder Ausfüllen des übergeordneten Bereichs.
100height?number | "auto" | "fill"Höhe in Punkten, automatische Größe oder Ausfüllen des übergeordneten Bereichs.
80padding?numberInnenabstand des Inhalts in Punkten.
0x?numberVisueller Versatz in Punkten: x nach rechts, y nach unten; der Layoutplatz bleibt gleich.
0y?numberVisueller Versatz in Punkten: x nach rechts, y nach unten; der Layoutplatz bleibt gleich.
0transform?ViewTransformGesamten View ohne Layoutänderung transformieren. Verschiebung in Punkten, Drehung/Neigung in Grad, Skalierung 1 unverändert, Anker 0–1.
{rotation: 0}background?PaintHintergrundfarbe oder Verlauf; clear ist transparent.
"clear"opacity?numberDeckkraft des gesamten Views: 0 transparent, 1 undurchsichtig.
1cornerRadius?numberEckenradius in Punkten.
0clipped?booleanZeichnung außerhalb der View-Grenzen abschneiden.
falseclip?"rectangle" | "ellipse"Schnittform rectangle oder ellipse; Material erlaubt auch false zum Abschalten.
"rectangle"mask?View | nullView als Alphamaske. Zentriert ohne Einfluss auf das Layout; null deaktiviert die Maske.
<Circle width="fill" height="fill" background="white"/>zIndex?numberZeichenreihenfolge unter Geschwistern; größere Werte liegen vorne.
0blur?numberUnschärferadius in Punkten; 0 deaktiviert die Unschärfe.
4innerShadow?DrawingEffectEffektfarbe, Deckkraft, Unschärferadius und x/y-Versatz; Entfernungen in Punkten.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectEffektfarbe, Deckkraft, Unschärferadius und x/y-Versatz; Entfernungen in Punkten.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorFarbe des äußeren Schattens.
HDR("black")shadowOpacity?numberSchattendeckkraft 0–1; 0 blendet ihn aus.
0shadowRadius?numberUnschärferadius des äußeren Schattens in Punkten.
4shadowX?numberSchattenversatz in Punkten: x rechts, y unten.
0shadowY?numberSchattenversatz in Punkten: x rechts, y unten.
2animations?RadialLayoutAnimation[]Attributänderung animieren. duration/delay in Sekunden; from/to sind Endwerte; repeat/autoreverse steuern Wiederholung, wrap die Periode.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberStabile Kennung unter Geschwisterelementen.
Praxisbeispiel
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>
);
}
Animation
widthheightpaddingxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYradiusradiusXradiusYstartAnglesweepAngletransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYBeim Weglassen
Die Tabelle zeigt implementierte Vorgaben beim Weglassen. Eigenschaftsbeispiele sind keine Standardwerte. Für feste Ergebnisse explizite Werte setzen; kontextabhängige Maße und Themenfarben sind keine Konstanten.
| Eigenschaften | Beim Weglassen |
|---|---|
radius | 80 |
startAngle | -90 |
sweepAngle | 360 |
includeEnd | false |
childRotation | "none" |