01 · Flutter package
full_svg_flutter
Zachowaj SVG jako format źródłowy we Flutterze.
Po co powstał
Statyczne ikony to tylko mały wycinek SVG. Assety produktowe mogą opierać się na SMIL, animacjach CSS, morphingu, filtrach, tekście albo wbudowanym odtwarzaczu w JavaScripcie. Konwersja dokłada drugie źródło prawdy, a WebView – drugi system renderowania.
Instalacja
flutter pub add full_svg_flutterSzybki start
import 'package:full_svg_flutter/full_svg_flutter.dart';
// Static or animated — the runtime detects the document.
FSvgPicture.asset(
'assets/hero.svg',
width: 240,
semanticsLabel: 'Product illustration',
);
// Existing static flutter_svg usage can keep the familiar API.
SvgPicture.asset('assets/icon.svg');Zakres
- Static SVG and DOM-preserving rendering
- SMIL and CSS @keyframes animation
- Path morphing and motion paths
- All 17 SVG filter primitives
- Masks, clipping, gradients, patterns, and rich text
- Inline JavaScript and SVGator exports
- Playback control and SVG <view> navigation
- flutter_svg-compatible static API
Jak działa
Pakiet parsuje dokument SVG do własnego modelu zachowującego DOM, wylicza style i stan animacji, a potem rysuje przez Flutter. Treść statyczna i animowana korzysta z tego samego silnika. JavaScript startuje leniwie i tylko wtedy, gdy w dokumencie jest element script.
Użyj, gdy
- Dostajesz animowane SVG albo assety z SVGator i nie możesz zmienić formatu źródłowego.
- Potrzebujesz wierności filtrów, masek, tekstu lub animacji wykraczającej poza statyczne ikony.
- Chcesz znajomego API w stylu flutter_svg i ścieżki migracji bez WebView.
Mapa API
FSvgPicture- Główny widget dla statycznych i animowanych assetów ładowanych z assetów, sieci, stringa, pliku lub bajtów.
SvgPicture- Statyczny punkt wejścia zgodny z flutter_svg.
AnimatedSvgController- Odtwarzanie, pauza, seek, zmiana tempa lub kierunku i przełączanie widoków SVG.
renderSvgToPicture- Zapis SVG do Picture na potrzeby własnego rysowania lub rasteryzacji.
svg.cache- Konfigurowalny cache zdekodowanych źródeł, współdzielony między widgetami.
Zanim wydasz
- To runtime SVG, nie pełny DOM przeglądarki – foreignObject i frameworki zależne od przeglądarki są poza zakresem.
- Złożone filtry i tekst o mieszanym kierunku sprawdź wizualnie przed wydaniem.