RepeatedLayout
Sao chép định kỳ một mẫu trong cửa sổ cắt xén, phù hợp với thang đo và la bàn di chuyển liên tục. period đặt khoảng thời gian lặp lại, value và anchor xác định vị trí căn chỉnh giá trị hiện tại.
Ví dụ
function main() {
return (
<RepeatedLayout axis="horizontal" period={120} value={76} anchor={0.5}>
<Text width={120}>N</Text>
</RepeatedLayout>
);
}
Cách sử dụng
- children là một mẫu, period là chu kỳ. value khớp anchor; tăng value làm mẫu đi ngược, cộng offset theo điểm. both lặp hai trục, tách bằng {x,y}. Nội dung luôn cắt trong cửa sổ.
- x/y và transform áp dụng sau bố cục. Dời con không đẩy các con khác; dùng spacing hoặc Spacer. Xoay và tỷ lệ tác động lên toàn bộ hình đã vẽ.
Thuộc tính
children?ViewContentNội dung vẽ con.
axis?"horizontal" | "vertical" | "both"Lặp horizontal, vertical hoặc both; both tạo lưới bản sao.
"horizontal"period?RepeatAxisValueKhoảng cách bản sao theo điểm; x/y đặt riêng từng trục.
360value?RepeatAxisValueTọa độ nội dung đặt tại anchor. Tăng giá trị làm bản sao dịch ngược; không phải tốc độ.
$data.current.heading?.direction ?? 0anchor?RepeatAxisValueVị trí trong vùng nhìn: 0 đầu, 0.5 giữa, 1 cuối.
0.5offset?RepeatAxisValueĐộ lệch thêm theo điểm sau khi căn value vào anchor.
0alignment?"topLeading" | "top" | "topTrailing" | "leading" | "center" | "trailing" | "bottomLeading" | "bottom" | "bottomTrailing"Căn các View con chồng nhau tại chín vị trí cạnh và giữa.
"topLeading"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.
100height?number | "auto" | "fill"Chiều cao tính bằng point, tự động hoặc lấp đầy khung cha.
80padding?numberKhoảng đệm nội dung tính bằng point.
0x?numberDị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.
0y?numberDị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.
0transform?ViewTransformBiế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.
{rotation: 0}background?PaintMàu hoặc chuyển màu nền; clear là trong suốt.
"clear"opacity?numberĐộ đục toàn bộ View: 0 trong suốt, 1 đục hoàn toàn.
1cornerRadius?numberBán kính bo góc theo điểm.
0clip?"rectangle" | "ellipse"Hình cắt rectangle hoặc ellipse; Material còn nhận false để tắt.
"rectangle"mask?View | nullView mặt nạ alpha. Căn giữa mà không ảnh hưởng bố cục; null tắt mặt nạ.
<Circle width="fill" height="fill" background="white"/>zIndex?numberThứ tự vẽ giữa các phần tử cùng cấp; giá trị lớn nằm trước.
0blur?numberBán kính làm mờ theo điểm; 0 là tắt.
4innerShadow?DrawingEffectMàu, độ đục, bán kính mờ và độ lệch x/y của hiệu ứng; khoảng cách theo điểm.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectMàu, độ đục, bán kính mờ và độ lệch x/y của hiệu ứng; khoảng cách theo điểm.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorMàu bóng đổ bên ngoài.
HDR("black")shadowOpacity?numberĐộ đục bóng 0–1; 0 ẩn bóng.
0shadowRadius?numberBán kính làm mờ bóng ngoài theo điểm.
4shadowX?numberĐộ lệch bóng theo điểm: x sang phải, y xuống.
0shadowY?numberĐộ lệch bóng theo điểm: x sang phải, y xuống.
2animations?Animation[]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ỳ.
[{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 (
<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>
);
}
Hoạt ảnh
widthheightpaddingxyopacitybackgroundcornerRadiusblurshadowColorshadowOpacityshadowRadiusshadowXshadowYperiodvalueanchoroffsettransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYperiod.xperiod.yvalue.xvalue.yanchor.xanchor.yoffset.xoffset.yKhi 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ố.