переход экрана дрожания не плавный при использовании пользовательского художника, который рисует объект больше, чем размер экрана
Я использую собственный художник для создания фона моего приложения. Я рисую круг, который наполовину виден на экране, а остальное - снаружи. Экран отображается нормально, проблем нет. Однако, когда я перехожу к следующему экрану, переход не плавный. Ниже прилагается образец кода и видео, демонстрирующее проблему перехода.
import 'package:flutter/material.dart';
import 'nextpage.dart';
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('My App'),
),
body: CustomPaint(
painter: MyCustomPainter(),
),
floatingActionButton: FloatingActionButton(onPressed: () {
return Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => NextPage()));
}),
);
}
}
class MyCustomClipper extends CustomClipper<Rect> {
@override
Rect getClip(Size size) {
return Rect.fromPoints(Offset(0, 0), Offset(200, 200));
}
@override
bool shouldReclip(CustomClipper<Rect> oldClipper) => false;
}
class MyCustomPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
final paint = Paint()..color = Colors.blue;
canvas.drawCircle(Offset(300, 300), 400, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) => false;
}
Клип, показывающий проблему, можно найти здесь. https://drive.google.com/file/d/1BVQL39FGG3efNL7ISEj5azTejwHcFJ8I/view?usp=sharing
Я пробовал использовать clipRect, но это не решило проблему. Любая помощь будет высоко оценен.