Improve transitions between screens

This commit is contained in:
poka 2021-03-08 06:21:04 +01:00
parent 693426a156
commit fb242332f0
17 changed files with 78 additions and 34 deletions

View File

@ -135,6 +135,32 @@ class SmoothTransition extends PageRouteBuilder {
);
}
class FaderTransition extends PageRouteBuilder {
final Widget page;
final bool isFast;
FaderTransition({@required this.page, @required this.isFast})
: super(
pageBuilder: (
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
) =>
page,
transitionsBuilder: (
BuildContext context,
Animation<double> animation,
Animation<double> secondaryAnimation,
Widget child,
) =>
FadeTransition(
opacity:
Tween(begin: 0.0, end: isFast ? 3.0 : 1.0).animate(animation),
child: child,
),
);
}
class SlideLeftRoute extends PageRouteBuilder {
final Widget page;
SlideLeftRoute({this.page})

View File

@ -4,7 +4,7 @@ import 'package:gecko/models/history.dart';
import 'package:gecko/models/home.dart';
import 'package:flutter/material.dart';
import 'package:gecko/models/myWallets.dart';
import 'package:gecko/screens/onBoarding/1_noKeychainFound.dart';
import 'package:gecko/screens/onBoarding/0_noKeychainFound.dart';
import 'dart:ui';
import 'package:gecko/screens/settings.dart';
import 'package:flutter/services.dart';

View File

@ -3,7 +3,7 @@ import 'package:gecko/models/myWallets.dart';
import 'package:gecko/models/walletOptions.dart';
import 'package:flutter/material.dart';
import 'package:gecko/screens/myWallets/unlockingWallet.dart';
import 'package:gecko/screens/onBoarding/1_noKeychainFound.dart';
import 'package:gecko/screens/onBoarding/0_noKeychainFound.dart';
import 'package:provider/provider.dart';
// ignore: must_be_immutable

View File

@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/myWallets/importWallet.dart';
import 'package:gecko/screens/onBoarding/2_stepOne.dart';
import 'package:gecko/screens/onBoarding/1.dart';
// import 'package:gecko/models/home.dart';
// import 'package:provider/provider.dart';
@ -39,7 +39,9 @@ class NoKeyChainScreen extends StatelessWidget {
height: 90)),
onTap: () {
Navigator.push(
context, SlideLeftRoute(page: OnboardingStepOne()));
context,
FaderTransition(
page: OnboardingStepOne(), isFast: true));
}),
),
),

View File

@ -1,7 +1,7 @@
import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/3_stepTwo.dart';
import 'package:gecko/screens/onBoarding/2.dart';
// import 'package:gecko/models/home.dart';
// import 'package:provider/provider.dart';
@ -42,7 +42,7 @@ class OnboardingStepOne extends StatelessWidget {
),
onPressed: () {
Navigator.push(context,
SmoothTransition(page: OnboardingStepTwo()));
FaderTransition(page: OnboardingStepTwo(), isFast: true));
},
child: Text('Créer mon trousseau',
style: TextStyle(fontSize: 20))),

View File

@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/13_stepThirteen.dart';
import 'package:gecko/screens/onBoarding/11.dart';
// ignore: must_be_immutable
class OnboardingStepTwelve extends StatelessWidget {
@ -41,7 +41,7 @@ class OnboardingStepTwelve extends StatelessWidget {
onPressed: () {
Navigator.push(
context,
SmoothTransition(page: OnboardingStepThirteen()),
FaderTransition(page: OnboardingStepThirteen(), isFast: true),
);
},
child: Text("Générer le code secret",

View File

@ -4,7 +4,7 @@ import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:gecko/models/generateWallets.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/14_stepFourteen.dart';
import 'package:gecko/screens/onBoarding/12.dart';
import 'package:provider/provider.dart';
// ignore: must_be_immutable
@ -106,9 +106,9 @@ class OnboardingStepThirteen extends StatelessWidget {
_generateWalletProvider.askedWordColor = Colors.black;
Navigator.push(
context,
SmoothTransition(
FaderTransition(
page: OnboardingStepFourteen(
generatedWallet: generatedWallet)),
generatedWallet: generatedWallet), isFast: true),
);
},
child: Text("J'ai noté mon code secret",

View File

@ -8,7 +8,7 @@ import 'package:gecko/models/generateWallets.dart';
import 'package:gecko/models/myWallets.dart';
import 'package:gecko/models/walletOptions.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/15_stepFiveteen.dart';
import 'package:gecko/screens/onBoarding/13_congratulations.dart';
import 'package:pin_code_fields/pin_code_fields.dart';
import 'package:provider/provider.dart';
@ -123,7 +123,8 @@ class OnboardingStepFourteen extends StatelessWidget {
_myWalletProvider.rebuildWidget();
Navigator.push(
context,
SmoothTransition(page: OnboardingStepFiveteen()),
FaderTransition(
page: OnboardingStepFiveteen(), isFast: false),
);
} else {
errorController.add(ErrorAnimationType

View File

@ -1,7 +1,7 @@
import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/4_stepFor.dart';
import 'package:gecko/screens/onBoarding/3.dart';
// import 'package:gecko/screens/commonElements.dart';
// import 'package:gecko/models/home.dart';
// import 'package:provider/provider.dart';
@ -42,7 +42,7 @@ class OnboardingStepTwo extends StatelessWidget {
onPressed: () {
Navigator.push(
context,
SmoothTransition(page: OnboardingStepFor()),
FaderTransition(page: OnboardingStepFor(), isFast: true),
);
},
child: Text("D'accord", style: TextStyle(fontSize: 20)),

View File

@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/5_stepFive.dart';
import 'package:gecko/screens/onBoarding/4.dart';
// ignore: must_be_immutable
class OnboardingStepFor extends StatelessWidget {
@ -47,7 +47,7 @@ class OnboardingStepFor extends StatelessWidget {
onPressed: () {
Navigator.push(
context,
SmoothTransition(page: OnboardingStepFive()),
FaderTransition(page: OnboardingStepFive(), isFast: true),
);
},
child: Text("J'ai compris",

View File

@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/7_stepSeven.dart';
import 'package:gecko/screens/onBoarding/5.dart';
// ignore: must_be_immutable
class OnboardingStepFive extends StatelessWidget {
@ -42,7 +42,7 @@ class OnboardingStepFive extends StatelessWidget {
onPressed: () {
Navigator.push(
context,
SmoothTransition(page: OnboardingStepSeven()),
FaderTransition(page: OnboardingStepSeven(), isFast: true),
);
},
child: Text("J'ai compris",

View File

@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/8_stepEight.dart';
import 'package:gecko/screens/onBoarding/6.dart';
// ignore: must_be_immutable
class OnboardingStepSeven extends StatelessWidget {
@ -59,7 +59,7 @@ class OnboardingStepSeven extends StatelessWidget {
onPressed: () {
Navigator.push(
context,
SmoothTransition(page: OnboardingStepEight()),
FaderTransition(page: OnboardingStepEight(), isFast: true),
);
},
child: Text("J'ai de quoi noter",

View File

@ -3,7 +3,7 @@ import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/9_stepNine.dart';
import 'package:gecko/screens/onBoarding/7.dart';
// ignore: must_be_immutable
class OnboardingStepEight extends StatelessWidget {
@ -42,7 +42,8 @@ class OnboardingStepEight extends StatelessWidget {
onPressed: () {
Navigator.push(
context,
SmoothTransition(page: OnboardingStepNine()),
FaderTransition(
page: OnboardingStepNine(), isFast: false),
);
},
child: Text("Afficher ma phrase",
@ -100,13 +101,13 @@ Widget arrayCell(dataWord) {
child: Column(
children: <Widget>[
ImageFiltered(
imageFilter: ImageFilter.blur(sigmaX: 2.5, sigmaY: 2.5),
imageFilter: ImageFilter.blur(sigmaX: 1, sigmaY: 1),
child: Text(dataWord.split(':')[0],
style: TextStyle(fontSize: 14, color: Colors.black)),
),
SizedBox(height: 2),
ImageFiltered(
imageFilter: ImageFilter.blur(sigmaX: 3, sigmaY: 3),
imageFilter: ImageFilter.blur(sigmaX: 4, sigmaY: 4),
child: Text(dataWord.split(':')[1],
style: TextStyle(fontSize: 20, color: Colors.black)),
)

View File

@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/generateWallets.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/10_stepTen.dart';
import 'package:gecko/screens/onBoarding/8.dart';
import 'package:printing/printing.dart';
import 'package:provider/provider.dart';
@ -84,12 +84,13 @@ class OnboardingStepNine extends StatelessWidget {
Navigator.push(
context,
SmoothTransition(
FaderTransition(
page: OnboardingStepTen(
generatedMnemonic:
_generateWalletProvider.generatedMnemonic,
generatedWallet:
_generateWalletProvider.actualWallet)),
_generateWalletProvider.actualWallet),
isFast: true),
);
},
child: Text("J'ai noté ma phrase",
@ -107,7 +108,20 @@ Widget sentanceArray(BuildContext context) {
return FutureBuilder(
future: _generateWalletProvider.generateWordList(),
initialData: '::::::::::::',
initialData: [
'1:...',
'2:...',
'3:...',
'4:...',
'5:...',
'6:...',
'7:...',
'8:...',
'9:...',
'10:...',
'11:...',
'12:...',
],
builder: (context, formatedArray) {
return Container(
padding: EdgeInsets.symmetric(horizontal: 12),

View File

@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/generateWallets.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/11_stepEleven.dart';
import 'package:gecko/screens/onBoarding/9.dart';
import 'package:provider/provider.dart';
// ignore: must_be_immutable
@ -163,8 +163,8 @@ class OnboardingStepTen extends StatelessWidget {
onPressed: () {
Navigator.push(
context,
SmoothTransition(
page: OnboardingStepEleven()),
FaderTransition(
page: OnboardingStepEleven(), isFast: true),
);
},
child: Text("Continuer",

View File

@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/screens/commonElements.dart';
import 'package:gecko/screens/onBoarding/12_stepTwelve.dart';
import 'package:gecko/screens/onBoarding/10.dart';
// ignore: must_be_immutable
class OnboardingStepEleven extends StatelessWidget {
@ -48,7 +48,7 @@ class OnboardingStepEleven extends StatelessWidget {
onPressed: () {
Navigator.push(
context,
SmoothTransition(page: OnboardingStepTwelve()),
FaderTransition(page: OnboardingStepTwelve(), isFast: true),
);
},
child: Text("J'ai compris",