переход экрана дрожания не плавный при использовании пользовательского художника, который рисует объект больше, чем размер экрана

Я использую собственный художник для создания фона моего приложения. Я рисую круг, который наполовину виден на экране, а остальное - снаружи. Экран отображается нормально, проблем нет. Однако, когда я перехожу к следующему экрану, переход не плавный. Ниже прилагается образец кода и видео, демонстрирующее проблему перехода.

    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, но это не решило проблему. Любая помощь будет высоко оценен.

0 ответов

Другие вопросы по тегам