RadialLayout

Distribuya escalas, números o símbolos alrededor de un círculo. radius controla la distancia desde el centro hasta el centro de diseño de View, y startAngle y sweepAngle controlan el rango de distribución.

Ejemplo

function main() {
  return (
    <RadialLayout
      radius={70}
      startAngle={-90}
      sweepAngle={270}
      includeEnd={true}
    >
      {[0, 60, 120, 180].map((value) => (
        <Text key={value}>{value}</Text>
      ))}
    </RadialLayout>
  );
}

Uso

  • Los radios colocan centros de hijos, no bordes del contenedor. includeEnd=false divide en n, true en n−1. En un círculo completo los extremos se solapan. childRotation controla su orientación.
  • Ángulos en grados: 0 derecha, 90 abajo, sweep positivo horario. startAngle módulo 360; sweepAngle limitado a −360…360. 0 no dibuja; ±360 cierra. wrap:360 es para startAngle, no sweepAngle.
  • Usa identificadores estables como key para conservar identidad y animaciones. El índice del array no sirve como identidad permanente si cambia el orden.

Propiedades

children?ViewContent

Contenido de dibujo hijo.

radius?number

Radio en puntos. radius aplica a ambos ejes; radiusX/radiusY los sustituyen por separado. Negativos se convierten en 0.

Ejemplo80
radiusX?number

Radio en puntos. radius aplica a ambos ejes; radiusX/radiusY los sustituyen por separado. Negativos se convierten en 0.

Ejemplo80
radiusY?number

Radio en puntos. radius aplica a ambos ejes; radiusX/radiusY los sustituyen por separado. Negativos se convierten en 0.

Ejemplo80
startAngle?number

Ángulo inicial en grados, normalizado módulo 360 al muestrear.

Ejemplo-90
sweepAngle?number

Barrido en grados, limitado a -360…360 al muestrear. Los valores positivos giran en sentido horario; no admite wrap.

Ejemplo360
includeEnd?boolean

Incluye el extremo del barrido. En un círculo completo, false evita superponer inicio y final.

Ejemplofalse
childRotation?"none" | "radial" | "tangent"

none mantiene orientación; radial sigue el radio; tangent añade 90 grados.

Ejemplo"none"
Propiedades comunes
width?number | "auto" | "fill"

Anchura en puntos, tamaño automático o relleno del contenedor.

Ejemplo100
height?number | "auto" | "fill"

Altura en puntos, tamaño automático o relleno del contenedor.

Ejemplo80
padding?number

Relleno interior del contenido en puntos.

Ejemplo0
x?number

Desplazamiento visual en puntos: x a la derecha, y hacia abajo, sin cambiar el espacio del diseño.

Ejemplo0
y?number

Desplazamiento visual en puntos: x a la derecha, y hacia abajo, sin cambiar el espacio del diseño.

Ejemplo0
transform?ViewTransform

Transformación global sin alterar el diseño. Traslación en puntos, giro/inclinación en grados, escala 1 sin cambios, anclajes 0–1.

Ejemplo{rotation: 0}
background?Paint

Color o degradado de fondo; clear es transparente.

Ejemplo"clear"
opacity?number

Opacidad de todo el View: 0 transparente, 1 opaco.

Ejemplo1
cornerRadius?number

Radio de las esquinas en puntos.

Ejemplo0
clipped?boolean

Recorta el dibujo que sobresale de los límites del View.

Ejemplofalse
clip?"rectangle" | "ellipse"

Recorte rectangle o ellipse; Material también admite false para desactivarlo.

Ejemplo"rectangle"
mask?View | null

View de máscara alfa. Centrada sin afectar al diseño; null desactiva la máscara.

Ejemplo<Circle width="fill" height="fill" background="white"/>
zIndex?number

Orden entre elementos hermanos; los valores mayores aparecen delante.

Ejemplo0
blur?number

Radio de desenfoque en puntos; 0 lo desactiva.

Ejemplo4
innerShadow?DrawingEffect

Color, opacidad, radio de desenfoque y desplazamiento x/y del efecto; distancias en puntos.

Ejemplo{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}

Color, opacidad, radio de desenfoque y desplazamiento x/y del efecto; distancias en puntos.

Ejemplo{color: HDR("cyan"), radius: 8, opacity: 0.8}
shadowColor?Color

Color de la sombra exterior.

EjemploHDR("black")
shadowOpacity?number

Opacidad de la sombra de 0 a 1; 0 la oculta.

Ejemplo0
shadowRadius?number

Radio de desenfoque de la sombra, en puntos.

Ejemplo4
shadowX?number

Desplazamiento de sombra en puntos: x derecha, y abajo.

Ejemplo0
shadowY?number

Desplazamiento de sombra en puntos: x derecha, y abajo.

Ejemplo2

Anima cambios de propiedad. duration/delay en segundos; from/to son extremos; repeat/autoreverse controlan repeticiones y wrap el período.

Ejemplo[{property: "opacity", duration: 0.25, curve: "easeInOut"}]
key?string | number

Identidad estable entre elementos hermanos.

Ejemplo práctico

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>
  );
}

Animación

Animación

widthheightpaddingxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYradiusradiusXradiusYstartAnglesweepAngletransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorY

Al omitir

La tabla documenta omisiones comprobadas en la implementación. Los ejemplos no son valores predeterminados. Especifica valores para resultados fijos; tamaños y colores del contexto no son constantes.

PropiedadesAl omitir
radius80
startAngle-90
sweepAngle360
includeEndfalse
childRotation"none"