RepeatedLayout
Duplica periodicamente un modello nella finestra di ritaglio, adatto per scale e compassi in continuo movimento. period imposta l'intervallo di ripetizione, value e anchor determinano dove è allineato il valore corrente.
Esempio
function main() {
return (
<RepeatedLayout axis="horizontal" period={120} value={76} anchor={0.5}>
<Text width={120}>N</Text>
</RepeatedLayout>
);
}
Utilizzo
- children definisce un motivo, period la ripetizione. value si allinea ad anchor; aumentarlo sposta in direzione opposta, più offset in punti. both ripete su due assi, separati con {x,y}. Il riquadro ritaglia sempre.
- x/y e transform seguono il layout. Spostare un figlio non spinge gli altri; usa spacing o Spacer. Rotazione e scala interessano il disegno completo.
Proprietà
children?ViewContentContenuto di disegno figlio.
axis?"horizontal" | "vertical" | "both"Ripetizione horizontal, vertical o both; both crea una griglia.
"horizontal"period?RepeatAxisValueDistanza tra copie in punti; x/y imposta gli assi separatamente.
360value?RepeatAxisValueCoordinata del contenuto posta su anchor. Aumentando, le copie si muovono al contrario; non è una velocità.
$data.current.heading?.direction ?? 0anchor?RepeatAxisValuePosizione nell’area visibile: 0 inizio, 0.5 centro, 1 fine.
0.5offset?RepeatAxisValueOffset aggiuntivo in punti dopo aver allineato value ad anchor.
0alignment?"topLeading" | "top" | "topTrailing" | "leading" | "center" | "trailing" | "bottomLeading" | "bottom" | "bottomTrailing"Allinea i figli sovrapposti in nove posizioni tra bordi e centro.
"topLeading"Proprietà comuni
width?number | "auto" | "fill"Larghezza in punti, dimensione automatica o riempimento del contenitore.
100height?number | "auto" | "fill"Altezza in punti, dimensione automatica o riempimento del contenitore.
80padding?numberSpaziatura interna del contenuto in punti.
0x?numberSpostamento visivo in punti: x a destra, y in basso; non cambia lo spazio nel layout.
0y?numberSpostamento visivo in punti: x a destra, y in basso; non cambia lo spazio nel layout.
0transform?ViewTransformTrasformazione globale senza cambiare il layout. Traslazione in punti, rotazione/inclinazione in gradi, scala 1 invariata, ancoraggi 0–1.
{rotation: 0}background?PaintColore o gradiente di sfondo; clear è trasparente.
"clear"opacity?numberOpacità dell’intero View: 0 trasparente, 1 opaco.
1cornerRadius?numberRaggio degli angoli in punti.
0clip?"rectangle" | "ellipse"Forma di ritaglio rectangle o ellipse; Material accetta anche false per disattivarlo.
"rectangle"mask?View | nullView per la maschera alfa. Centrata senza modificare il layout; null disattiva la maschera.
<Circle width="fill" height="fill" background="white"/>zIndex?numberOrdine tra elementi fratelli; valori più grandi appaiono davanti.
0blur?numberRaggio della sfocatura in punti; 0 la disattiva.
4innerShadow?DrawingEffectColore, opacità, raggio di sfocatura e offset x/y dell’effetto; distanze in punti.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectColore, opacità, raggio di sfocatura e offset x/y dell’effetto; distanze in punti.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorColore dell’ombra esterna.
HDR("black")shadowOpacity?numberOpacità dell’ombra 0–1; 0 la nasconde.
0shadowRadius?numberRaggio di sfocatura dell’ombra esterna in punti.
4shadowX?numberOffset dell’ombra in punti: x a destra, y in basso.
0shadowY?numberOffset dell’ombra in punti: x a destra, y in basso.
2animations?Animation[]Anima le modifiche alle proprietà. duration/delay in secondi; from/to sono estremi; repeat/autoreverse controllano le ripetizioni, wrap il periodo.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberIdentità stabile tra elementi fratelli.
Esempio pratico
function main() {
return (
<RepeatedLayout
width={240}
height={140}
axis="both"
period={{ x: 80, y: 50 }}
value={{ x: 40, y: 25 }}
anchor={{ x: 0.5, y: 0.5 }}
alignment="center"
>
<Symbol name="plus" fontSize={20} color={$env.accent} />
</RepeatedLayout>
);
}
Animazione
widthheightpaddingxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYperiodvalueanchoroffsettransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYperiod.xperiod.yvalue.xvalue.yanchor.xanchor.yoffset.xoffset.yQuando omesso
La tabella documenta omissioni verificate nell’implementazione. Gli esempi non sono valori predefiniti. Specifica valori per risultati fissi; misure e colori contestuali non sono costanti.