fix performance issues
This commit is contained in:
parent
faaab2bd0d
commit
adf4fe0ca5
3 changed files with 10 additions and 1 deletions
|
|
@ -3,6 +3,8 @@ import "package:avatar_maker/src/core/models/customized_property_category.dart";
|
||||||
import "package:flutter/material.dart";
|
import "package:flutter/material.dart";
|
||||||
import "package:flutter_svg/flutter_svg.dart";
|
import "package:flutter_svg/flutter_svg.dart";
|
||||||
import "package:provider/provider.dart";
|
import "package:provider/provider.dart";
|
||||||
|
import "package:vector_graphics/vector_graphics_compat.dart"
|
||||||
|
show RenderingStrategy;
|
||||||
|
|
||||||
/// This widget renders the avatar of the user on screen.
|
/// This widget renders the avatar of the user on screen.
|
||||||
///
|
///
|
||||||
|
|
@ -50,8 +52,10 @@ class AvatarMakerAvatar extends StatelessWidget {
|
||||||
return loader;
|
return loader;
|
||||||
}
|
}
|
||||||
return SvgPicture.string(
|
return SvgPicture.string(
|
||||||
avatarController.drawAvatarSVG(),
|
avatarController.displayedAvatarSVG,
|
||||||
height: radius * 1.6,
|
height: radius * 1.6,
|
||||||
|
// Reuse the raster while the fixed-size preview scrolls.
|
||||||
|
renderingStrategy: RenderingStrategy.raster,
|
||||||
semanticsLabel: "Your avatar",
|
semanticsLabel: "Your avatar",
|
||||||
placeholderBuilder: (context) => Center(
|
placeholderBuilder: (context) => Center(
|
||||||
child: loader,
|
child: loader,
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ import "package:avatar_maker/src/customizer/widgets/customizer_appbar.dart";
|
||||||
import "package:avatar_maker/src/customizer/widgets/customizer_bottom_navbar.dart";
|
import "package:avatar_maker/src/customizer/widgets/customizer_bottom_navbar.dart";
|
||||||
import "package:flutter/material.dart";
|
import "package:flutter/material.dart";
|
||||||
import "package:flutter_svg/flutter_svg.dart";
|
import "package:flutter_svg/flutter_svg.dart";
|
||||||
|
import "package:vector_graphics/vector_graphics_compat.dart"
|
||||||
|
show RenderingStrategy;
|
||||||
|
|
||||||
class CustomizerBody extends StatelessWidget {
|
class CustomizerBody extends StatelessWidget {
|
||||||
final AvatarMakerController avatarMakerController;
|
final AvatarMakerController avatarMakerController;
|
||||||
|
|
@ -84,6 +86,8 @@ class CustomizerBody extends StatelessWidget {
|
||||||
avatarMakerController.getComponentSVG(
|
avatarMakerController.getComponentSVG(
|
||||||
propertyCategory.id, index),
|
propertyCategory.id, index),
|
||||||
height: 80,
|
height: 80,
|
||||||
|
// Avoid replaying SVG paths on every scroll frame.
|
||||||
|
renderingStrategy: RenderingStrategy.raster,
|
||||||
semanticsLabel: 'Your AvatarMaker',
|
semanticsLabel: 'Your AvatarMaker',
|
||||||
placeholderBuilder: (context) => Center(
|
placeholderBuilder: (context) => Center(
|
||||||
child: CircularProgressIndicator.adaptive(),
|
child: CircularProgressIndicator.adaptive(),
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ dependencies:
|
||||||
material_symbols_icons: ^4.2874.0
|
material_symbols_icons: ^4.2874.0
|
||||||
provider: ^6.1.5
|
provider: ^6.1.5
|
||||||
shared_preferences: ^2.5.3
|
shared_preferences: ^2.5.3
|
||||||
|
vector_graphics: ^1.1.19
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
analyzer: ^8.1.1
|
analyzer: ^8.1.1
|
||||||
build_runner: ^2.10.1
|
build_runner: ^2.10.1
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue