Repository: flutter
Issue: Sliding animation transition is not working if destination screen has TextField in it.
Labels: framework,a: animation,f: routes,a: typography,p: animations,has reproducible steps,P2,found in release: 3.3,found in release: 3.7,team-framework,triaged-framework

I extended PageRouteBuilder to make custom transition animation to my pages:

```
class SlideLeftRoute extends PageRouteBuilder {
  final Widget page;
  SlideLeftRoute({this.page})
      : super(
    pageBuilder: (
        BuildContext context,
        Animation<double> animation,
        Animation<double> secondaryAnimation,
        ) =>
    page,
    transitionsBuilder: (
        BuildContext context,
        Animation<double> animation,
        Animation<double> secondaryAnimation,
        Widget child,
        ) =>
        SlideTransition(
          position: Tween<Offset>(
            begin: const Offset(1, 0),
            end: Offset.zero,
          ).animate(animation),
          child: child,
        ),
  );
}
```

and this is my root component:

```
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
      statusBarColor: Colors.PRIMARY,
      statusBarBrightness: Brightness.light,
    ));

    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      theme: ThemeData(
        fontFamily: 'IranSanse',
        primaryColor: Colors.PRIMARY,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: Splash(),
      initialRoute: 'splash',
      onGenerateRoute: (RouteSettings setting) {
        return mapNamesToRoutes(setting);
      },
    );
  }
}
```

and this is mapNamesToRoutes function:

```
SlideLeftRoute mapNamesToRoutes(RouteSettings setting) {
  Widget destination;

  final requestAuthCubit = sl<RequestAuthCubit>();
  final verifyAuthCubit = sl<VerifyAuthCubit>();

  switch (setting.name) {
    case 'splash':
      destination = Splash();
      break;
    case 'auth/request':
      destination = MultiBlocProvider(providers: [
        BlocProvider(
            create: (_) => InputValidationCubit(
                inputType: InputType.Phone,
                inputValidator: sl<InputValidator>())),
        BlocProvider.value(value: requestAuthCubit)
      ], child: RequestAuthPage());

      break;

    case 'auth/verify':
      final Map<String, Object> bundle = setting.arguments;
      destination = MultiBlocProvider(providers: [
        BlocProvider(
            create: (_) => InputValidationCubit(
                inputType: InputType.VerificationCode,
                inputValidator: sl<InputValidator>())),
        BlocProvider.value(value: requestAuthCubit),
        BlocProvider.value(value: verifyAuthCubit),
        BlocProvider.value(value: sl<TimerCubit>()),
      ], child: VerifyAuthPage(phone: bundle['phone'], expTime: bundle['exp']));
      break;
    default:
      destination = null;
  }

  return SlideLeftRoute(page: destination);
}
```
this is my splash page:

```
class Splash extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return StatefulWrapper(
        onInit: () async {
          Future.delayed(const Duration(milliseconds: 2000), () {
         
            Navigator.pushReplacementNamed(context, 'auth/verify',
                arguments: {'phone': '093********', 'exp': 120});
          });
        },
        child: Scaffold(
          body: Container(
            child: Center(child: Text('Splash Screen')
                // child: Text('Splash Screen'),
                ),
          ),
        ));
  }
}
```

and this is my VerifyAuthPage:
```
class VerifyAuthPage extends StatelessWidget {
  final String phone;
  final int expTime;

  VerifyAuthPage({Key key, @required this.phone, @required this.expTime});

  @override
  Widget build(BuildContext context) {
    return Scaffold(body:

    Container(color: Colors.red,

      child: TextField(),

      ),);
  }
}
```


the problem is when I come from splash to VerifyAuthPage the transition animation doesn't apply to VerifyAuthPage because of the existance of TextField
when I remove TextField the animation works properly
can anybody tell me what's wrong here?