RadialLayout

Phân phối tỷ lệ, số hoặc ký hiệu xung quanh một vòng tròn. radius kiểm soát khoảng cách từ tâm đến tâm bố cục của View, còn startAngle và sweepAngle kiểm soát phạm vi phân phối.

Ví dụ

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

Cách sử dụng

  • Bán kính đặt tâm con, không phải biên ngoài. includeEnd=false chia n, true chia n−1 phần. Vòng đầy với điểm cuối làm đầu cuối trùng nhau. childRotation điều khiển hướng con.
  • Góc tính độ: 0 phải, 90 xuống, sweep dương theo kim đồng hồ. startAngle modulo 360; sweepAngle giới hạn −360…360. 0 không vẽ, ±360 đầy vòng. wrap:360 chỉ cho startAngle.
  • Dùng ID dữ liệu ổn định làm key để giữ danh tính khi cập nhật và hoạt ảnh. Chỉ số mảng không phù hợp làm ID cố định khi đổi thứ tự.

Thuộc tính

children?ViewContent

Nội dung vẽ con.

radius?number

Bán kính theo điểm: radius cho hai trục, radiusX/radiusY ghi đè riêng. Số âm thành 0.

Ví dụ80
radiusX?number

Bán kính theo điểm: radius cho hai trục, radiusX/radiusY ghi đè riêng. Số âm thành 0.

Ví dụ80
radiusY?number

Bán kính theo điểm: radius cho hai trục, radiusX/radiusY ghi đè riêng. Số âm thành 0.

Ví dụ80
startAngle?number

Góc bắt đầu tính bằng độ, lấy phần dư theo 360 khi lấy mẫu.

Ví dụ-90
sweepAngle?number

Góc quét tính bằng độ, giới hạn ở -360…360 khi lấy mẫu. Giá trị dương theo chiều kim đồng hồ; không hỗ trợ wrap.

Ví dụ360
includeEnd?boolean

Có tính điểm cuối góc quét khi sắp xếp. Vòng tròn đầy dùng false để tránh chồng đầu cuối.

Ví dụfalse
childRotation?"none" | "radial" | "tangent"

none giữ hướng, radial theo bán kính, tangent xoay thêm 90 độ.

Ví dụ"none"
Thuộc tính chung
width?number | "auto" | "fill"

Chiều rộng tính bằng point, tự động hoặc lấp đầy khung cha.

Ví dụ100
height?number | "auto" | "fill"

Chiều cao tính bằng point, tự động hoặc lấp đầy khung cha.

Ví dụ80
padding?number

Khoảng đệm nội dung tính bằng point.

Ví dụ0
x?number

Dịch chuyển hiển thị theo điểm: x sang phải, y xuống dưới; không đổi chỗ trong bố cục.

Ví dụ0
y?number

Dịch chuyển hiển thị theo điểm: x sang phải, y xuống dưới; không đổi chỗ trong bố cục.

Ví dụ0
transform?ViewTransform

Biến đổi toàn View không đổi bố cục. Dịch chuyển theo điểm, xoay/nghiêng theo độ, tỷ lệ 1 giữ nguyên, điểm neo 0–1.

Ví dụ{rotation: 0}
background?Paint

Màu hoặc chuyển màu nền; clear là trong suốt.

Ví dụ"clear"
opacity?number

Độ đục toàn bộ View: 0 trong suốt, 1 đục hoàn toàn.

Ví dụ1
cornerRadius?number

Bán kính bo góc theo điểm.

Ví dụ0
clipped?boolean

Cắt phần vẽ vượt ra ngoài View.

Ví dụfalse
clip?"rectangle" | "ellipse"

Hình cắt rectangle hoặc ellipse; Material còn nhận false để tắt.

Ví dụ"rectangle"
mask?View | null

View mặt nạ alpha. Căn giữa mà không ảnh hưởng bố cục; null tắt mặt nạ.

Ví dụ<Circle width="fill" height="fill" background="white"/>
zIndex?number

Thứ tự vẽ giữa các phần tử cùng cấp; giá trị lớn nằm trước.

Ví dụ0
blur?number

Bán kính làm mờ theo điểm; 0 là tắt.

Ví dụ4
innerShadow?DrawingEffect

Màu, độ đục, bán kính mờ và độ lệch x/y của hiệu ứng; khoảng cách theo điểm.

Ví dụ{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}

Màu, độ đục, bán kính mờ và độ lệch x/y của hiệu ứng; khoảng cách theo điểm.

Ví dụ{color: HDR("cyan"), radius: 8, opacity: 0.8}
shadowColor?Color

Màu bóng đổ bên ngoài.

Ví dụHDR("black")
shadowOpacity?number

Độ đục bóng 0–1; 0 ẩn bóng.

Ví dụ0
shadowRadius?number

Bán kính làm mờ bóng ngoài theo điểm.

Ví dụ4
shadowX?number

Độ lệch bóng theo điểm: x sang phải, y xuống.

Ví dụ0
shadowY?number

Độ lệch bóng theo điểm: x sang phải, y xuống.

Ví dụ2

Hoạt ảnh khi thuộc tính đổi. duration/delay theo giây; from/to là đầu cuối; repeat/autoreverse điều khiển lặp, wrap là chu kỳ.

Ví dụ[{property: "opacity", duration: 0.25, curve: "easeInOut"}]
key?string | number

Định danh ổn định giữa các phần tử cùng cấp.

Ví dụ kết hợp

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

Hoạt ảnh

Hoạt ảnh

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

Khi bỏ qua

Bảng ghi hành vi bỏ qua đã kiểm tra từ triển khai; ví dụ không phải mặc định. Muốn kết quả cố định hãy truyền giá trị rõ, kích thước và màu theo ngữ cảnh không phải hằng số.

Thuộc tínhKhi bỏ qua
radius80
startAngle-90
sweepAngle360
includeEndfalse
childRotation"none"