added app name and icon to splash, prep for rotate icon

This commit is contained in:
Rylee Davis 2023-05-12 16:23:40 -06:00
parent 01652be658
commit 41e0117c65
3 changed files with 79 additions and 1 deletions

View File

@ -0,0 +1,76 @@
import 'package:flutter/widgets.dart';
class RotateIconController {
VoidCallback? forward;
VoidCallback? reverse;
VoidCallback? reset;
}
class RotateIcon extends StatefulWidget {
const RotateIcon({
Key? key,
required this.icon,
required this.curve,
this.controller,
this.animationDurationMultiplier = 1.0,
this.rotationPercent = 0.5,
}) : super(key: key);
final Widget icon;
final Curve curve;
final RotateIconController? controller;
final double animationDurationMultiplier;
final double rotationPercent;
@override
State<RotateIcon> createState() => _RotateIconState();
}
class _RotateIconState extends State<RotateIcon>
with SingleTickerProviderStateMixin {
late final AnimationController animationController;
late final Animation<double> animation;
late final Duration duration;
@override
void initState() {
duration = Duration(
milliseconds: (500 * widget.animationDurationMultiplier).toInt(),
);
animationController = AnimationController(
vsync: this,
duration: duration,
);
animation = Tween<double>(
begin: 0.0,
end: widget.rotationPercent,
).animate(
CurvedAnimation(
curve: widget.curve,
parent: animationController,
),
);
widget.controller?.forward = animationController.forward;
widget.controller?.reverse = animationController.reverse;
widget.controller?.reset = animationController.reset;
super.initState();
}
@override
void dispose() {
animationController.dispose();
widget.controller?.forward = null;
widget.controller?.reverse = null;
super.dispose();
}
@override
Widget build(BuildContext context) {
return RotationTransition(
turns: animation,
child: widget.icon,
);
}
}

View File

@ -32,6 +32,7 @@ class _MainScreenWidgetState extends State<MainScreenWidget> {
title: Row(
// mainAxisAlignment: MainAxisAlignment.center,
children: [
// use png instead
SvgPicture.asset(
Assets.svg.drifterIcon,
height: 30,

View File

@ -1,6 +1,5 @@
import 'dart:io';
import 'package:drifter/pages/main_screen/main_screen_widget.dart';
import 'package:drifter/theme/app_colors.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -27,6 +26,7 @@ class _SplashState extends State<Splash> {
@override
Widget build(BuildContext context) {
var isAndroid;
return Scaffold(
backgroundColor: AppColors.background,
body: Center(
@ -55,6 +55,7 @@ class _SplashState extends State<Splash> {
const SizedBox(
height: 250,
),
//replace with rotating drifter icon
if (Platform.isAndroid)
const CircularProgressIndicator(
color: AppColors.mainAccent,