Improve transitions between screens
This commit is contained in:
parent
693426a156
commit
fb242332f0
|
@ -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 {
|
class SlideLeftRoute extends PageRouteBuilder {
|
||||||
final Widget page;
|
final Widget page;
|
||||||
SlideLeftRoute({this.page})
|
SlideLeftRoute({this.page})
|
||||||
|
|
|
@ -4,7 +4,7 @@ import 'package:gecko/models/history.dart';
|
||||||
import 'package:gecko/models/home.dart';
|
import 'package:gecko/models/home.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/models/myWallets.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 'dart:ui';
|
||||||
import 'package:gecko/screens/settings.dart';
|
import 'package:gecko/screens/settings.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
|
|
@ -3,7 +3,7 @@ import 'package:gecko/models/myWallets.dart';
|
||||||
import 'package:gecko/models/walletOptions.dart';
|
import 'package:gecko/models/walletOptions.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/screens/myWallets/unlockingWallet.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';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
// ignore: must_be_immutable
|
// ignore: must_be_immutable
|
||||||
|
|
|
@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:gecko/screens/commonElements.dart';
|
import 'package:gecko/screens/commonElements.dart';
|
||||||
import 'package:gecko/screens/myWallets/importWallet.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:gecko/models/home.dart';
|
||||||
// import 'package:provider/provider.dart';
|
// import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
@ -39,7 +39,9 @@ class NoKeyChainScreen extends StatelessWidget {
|
||||||
height: 90)),
|
height: 90)),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context, SlideLeftRoute(page: OnboardingStepOne()));
|
context,
|
||||||
|
FaderTransition(
|
||||||
|
page: OnboardingStepOne(), isFast: true));
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
),
|
),
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/screens/commonElements.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:gecko/models/home.dart';
|
||||||
// import 'package:provider/provider.dart';
|
// import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ class OnboardingStepOne extends StatelessWidget {
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(context,
|
Navigator.push(context,
|
||||||
SmoothTransition(page: OnboardingStepTwo()));
|
FaderTransition(page: OnboardingStepTwo(), isFast: true));
|
||||||
},
|
},
|
||||||
child: Text('Créer mon trousseau',
|
child: Text('Créer mon trousseau',
|
||||||
style: TextStyle(fontSize: 20))),
|
style: TextStyle(fontSize: 20))),
|
|
@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/screens/commonElements.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
|
// ignore: must_be_immutable
|
||||||
class OnboardingStepTwelve extends StatelessWidget {
|
class OnboardingStepTwelve extends StatelessWidget {
|
||||||
|
@ -41,7 +41,7 @@ class OnboardingStepTwelve extends StatelessWidget {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
SmoothTransition(page: OnboardingStepThirteen()),
|
FaderTransition(page: OnboardingStepThirteen(), isFast: true),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: Text("Générer le code secret",
|
child: Text("Générer le code secret",
|
|
@ -4,7 +4,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/models/generateWallets.dart';
|
import 'package:gecko/models/generateWallets.dart';
|
||||||
import 'package:gecko/screens/commonElements.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';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
// ignore: must_be_immutable
|
// ignore: must_be_immutable
|
||||||
|
@ -106,9 +106,9 @@ class OnboardingStepThirteen extends StatelessWidget {
|
||||||
_generateWalletProvider.askedWordColor = Colors.black;
|
_generateWalletProvider.askedWordColor = Colors.black;
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
SmoothTransition(
|
FaderTransition(
|
||||||
page: OnboardingStepFourteen(
|
page: OnboardingStepFourteen(
|
||||||
generatedWallet: generatedWallet)),
|
generatedWallet: generatedWallet), isFast: true),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: Text("J'ai noté mon code secret",
|
child: Text("J'ai noté mon code secret",
|
|
@ -8,7 +8,7 @@ import 'package:gecko/models/generateWallets.dart';
|
||||||
import 'package:gecko/models/myWallets.dart';
|
import 'package:gecko/models/myWallets.dart';
|
||||||
import 'package:gecko/models/walletOptions.dart';
|
import 'package:gecko/models/walletOptions.dart';
|
||||||
import 'package:gecko/screens/commonElements.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:pin_code_fields/pin_code_fields.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
@ -123,7 +123,8 @@ class OnboardingStepFourteen extends StatelessWidget {
|
||||||
_myWalletProvider.rebuildWidget();
|
_myWalletProvider.rebuildWidget();
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
SmoothTransition(page: OnboardingStepFiveteen()),
|
FaderTransition(
|
||||||
|
page: OnboardingStepFiveteen(), isFast: false),
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
errorController.add(ErrorAnimationType
|
errorController.add(ErrorAnimationType
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/screens/commonElements.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/screens/commonElements.dart';
|
||||||
// import 'package:gecko/models/home.dart';
|
// import 'package:gecko/models/home.dart';
|
||||||
// import 'package:provider/provider.dart';
|
// import 'package:provider/provider.dart';
|
||||||
|
@ -42,7 +42,7 @@ class OnboardingStepTwo extends StatelessWidget {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
SmoothTransition(page: OnboardingStepFor()),
|
FaderTransition(page: OnboardingStepFor(), isFast: true),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: Text("D'accord", style: TextStyle(fontSize: 20)),
|
child: Text("D'accord", style: TextStyle(fontSize: 20)),
|
|
@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/screens/commonElements.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
|
// ignore: must_be_immutable
|
||||||
class OnboardingStepFor extends StatelessWidget {
|
class OnboardingStepFor extends StatelessWidget {
|
||||||
|
@ -47,7 +47,7 @@ class OnboardingStepFor extends StatelessWidget {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
SmoothTransition(page: OnboardingStepFive()),
|
FaderTransition(page: OnboardingStepFive(), isFast: true),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: Text("J'ai compris",
|
child: Text("J'ai compris",
|
|
@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/screens/commonElements.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
|
// ignore: must_be_immutable
|
||||||
class OnboardingStepFive extends StatelessWidget {
|
class OnboardingStepFive extends StatelessWidget {
|
||||||
|
@ -42,7 +42,7 @@ class OnboardingStepFive extends StatelessWidget {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
SmoothTransition(page: OnboardingStepSeven()),
|
FaderTransition(page: OnboardingStepSeven(), isFast: true),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: Text("J'ai compris",
|
child: Text("J'ai compris",
|
|
@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/screens/commonElements.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
|
// ignore: must_be_immutable
|
||||||
class OnboardingStepSeven extends StatelessWidget {
|
class OnboardingStepSeven extends StatelessWidget {
|
||||||
|
@ -59,7 +59,7 @@ class OnboardingStepSeven extends StatelessWidget {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
SmoothTransition(page: OnboardingStepEight()),
|
FaderTransition(page: OnboardingStepEight(), isFast: true),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: Text("J'ai de quoi noter",
|
child: Text("J'ai de quoi noter",
|
|
@ -3,7 +3,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/screens/commonElements.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
|
// ignore: must_be_immutable
|
||||||
class OnboardingStepEight extends StatelessWidget {
|
class OnboardingStepEight extends StatelessWidget {
|
||||||
|
@ -42,7 +42,8 @@ class OnboardingStepEight extends StatelessWidget {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
SmoothTransition(page: OnboardingStepNine()),
|
FaderTransition(
|
||||||
|
page: OnboardingStepNine(), isFast: false),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: Text("Afficher ma phrase",
|
child: Text("Afficher ma phrase",
|
||||||
|
@ -100,13 +101,13 @@ Widget arrayCell(dataWord) {
|
||||||
child: Column(
|
child: Column(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
ImageFiltered(
|
ImageFiltered(
|
||||||
imageFilter: ImageFilter.blur(sigmaX: 2.5, sigmaY: 2.5),
|
imageFilter: ImageFilter.blur(sigmaX: 1, sigmaY: 1),
|
||||||
child: Text(dataWord.split(':')[0],
|
child: Text(dataWord.split(':')[0],
|
||||||
style: TextStyle(fontSize: 14, color: Colors.black)),
|
style: TextStyle(fontSize: 14, color: Colors.black)),
|
||||||
),
|
),
|
||||||
SizedBox(height: 2),
|
SizedBox(height: 2),
|
||||||
ImageFiltered(
|
ImageFiltered(
|
||||||
imageFilter: ImageFilter.blur(sigmaX: 3, sigmaY: 3),
|
imageFilter: ImageFilter.blur(sigmaX: 4, sigmaY: 4),
|
||||||
child: Text(dataWord.split(':')[1],
|
child: Text(dataWord.split(':')[1],
|
||||||
style: TextStyle(fontSize: 20, color: Colors.black)),
|
style: TextStyle(fontSize: 20, color: Colors.black)),
|
||||||
)
|
)
|
|
@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/models/generateWallets.dart';
|
import 'package:gecko/models/generateWallets.dart';
|
||||||
import 'package:gecko/screens/commonElements.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:printing/printing.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
@ -84,12 +84,13 @@ class OnboardingStepNine extends StatelessWidget {
|
||||||
|
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
SmoothTransition(
|
FaderTransition(
|
||||||
page: OnboardingStepTen(
|
page: OnboardingStepTen(
|
||||||
generatedMnemonic:
|
generatedMnemonic:
|
||||||
_generateWalletProvider.generatedMnemonic,
|
_generateWalletProvider.generatedMnemonic,
|
||||||
generatedWallet:
|
generatedWallet:
|
||||||
_generateWalletProvider.actualWallet)),
|
_generateWalletProvider.actualWallet),
|
||||||
|
isFast: true),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: Text("J'ai noté ma phrase",
|
child: Text("J'ai noté ma phrase",
|
||||||
|
@ -107,7 +108,20 @@ Widget sentanceArray(BuildContext context) {
|
||||||
|
|
||||||
return FutureBuilder(
|
return FutureBuilder(
|
||||||
future: _generateWalletProvider.generateWordList(),
|
future: _generateWalletProvider.generateWordList(),
|
||||||
initialData: '::::::::::::',
|
initialData: [
|
||||||
|
'1:...',
|
||||||
|
'2:...',
|
||||||
|
'3:...',
|
||||||
|
'4:...',
|
||||||
|
'5:...',
|
||||||
|
'6:...',
|
||||||
|
'7:...',
|
||||||
|
'8:...',
|
||||||
|
'9:...',
|
||||||
|
'10:...',
|
||||||
|
'11:...',
|
||||||
|
'12:...',
|
||||||
|
],
|
||||||
builder: (context, formatedArray) {
|
builder: (context, formatedArray) {
|
||||||
return Container(
|
return Container(
|
||||||
padding: EdgeInsets.symmetric(horizontal: 12),
|
padding: EdgeInsets.symmetric(horizontal: 12),
|
|
@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/models/generateWallets.dart';
|
import 'package:gecko/models/generateWallets.dart';
|
||||||
import 'package:gecko/screens/commonElements.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';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
// ignore: must_be_immutable
|
// ignore: must_be_immutable
|
||||||
|
@ -163,8 +163,8 @@ class OnboardingStepTen extends StatelessWidget {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
SmoothTransition(
|
FaderTransition(
|
||||||
page: OnboardingStepEleven()),
|
page: OnboardingStepEleven(), isFast: true),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: Text("Continuer",
|
child: Text("Continuer",
|
|
@ -2,7 +2,7 @@ import 'package:flutter/services.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:gecko/globals.dart';
|
import 'package:gecko/globals.dart';
|
||||||
import 'package:gecko/screens/commonElements.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
|
// ignore: must_be_immutable
|
||||||
class OnboardingStepEleven extends StatelessWidget {
|
class OnboardingStepEleven extends StatelessWidget {
|
||||||
|
@ -48,7 +48,7 @@ class OnboardingStepEleven extends StatelessWidget {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
SmoothTransition(page: OnboardingStepTwelve()),
|
FaderTransition(page: OnboardingStepTwelve(), isFast: true),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
child: Text("J'ai compris",
|
child: Text("J'ai compris",
|
Loading…
Reference in New Issue