0
votes

please check my code I want to use this animation with the bloc package, and also I want to use that without StatefulWidget class :

class LoadingScreen extends StatefulWidget {
  const LoadingScreen({Key? key}) : super(key: key);

  @override
  State<LoadingScreen> createState() => _LoadingScreenState();
}

class _LoadingScreenState extends State<LoadingScreen>
    with TickerProviderStateMixin {
  late AnimationController controller;
  late AnimationController controller2;
  late Animation<Offset> disk;
  late Animation<Offset> offset;
  int diskPicW = 0;

  @override
  void initState() {
    super.initState();
    controller =
        AnimationController(vsync: this, duration: Duration(seconds: 1));
    controller2 = AnimationController(
        vsync: this, duration: Duration(seconds: 1, milliseconds: 500));

    offset = Tween<Offset>(begin: Offset(1.0, 0.0), end: Offset.zero)
        .animate(controller);

    disk = Tween<Offset>(begin: Offset(-1.0, 0.0), end: Offset.zero)
        .animate(controller2);

    controller.forward();
    controller2.forward();
    Timer(Duration(seconds: 2, milliseconds: 500), (() {
      Navigator.push(
          context,
          MaterialPageRoute(
            builder: (context) => FirstPage(),
          ));
    }));
  }

  SizeController() {
    setState(() {});
  }

  @override
  void dispose() {
    super.dispose();
    controller.dispose();
    controller2.dispose();
  }

  @override
  Widget build(BuildContext context) {
    print(MediaQuery.of(context).size.width);
    print(MediaQuery.of(context).size.height);
    return Scaffold(
      backgroundColor: color3,
      body: Stack(
        children: [
          SlideTransition(
            position: offset,
            child: Center(
              child: Image.asset(
                'assets/001.png',
                width: 150,
                height: 150,
              ),
            ),
          ),
          SlideTransition(
            position: disk,
            child: AnimatedBuilder(
              animation: controller2.view,
              builder: (context, child) {
                return Transform.rotate(
                  angle: controller2.value * 2 * pi,
                  child: child,
                );
              },
              child: Center(
                child: Image.asset(
                  'assets/disk2.png',
                  width: 130,
                  height: 130,
                ),
              ),
            ),
          ),
          SlideTransition(
            position: offset,
            child: Center(
              child: Image.asset(
                'assets/002.png',
                width: 150,
                height: 150,
              ),
            ),
          )
        ],
      ),
    );
  }
}

This is my simple animation code How can I run this animation using the bloc package? I want without using the StatefulWidget class make that I want to use the bloc package and I don't know how Please teach me, thank you