Unity UIWidgets アニメーションしない画面遷移

Navigator.push はデフォルトでアニメーションがありますが、
それをなくす方法 @ UIWidgets

Flutterだと

class NonAnimatingRoute<T> extends MaterialPageRoute<T> {
  NonAnimatingRoute({this.builder, this.settings})
      : super(builder: builder, settings: settings);

  final WidgetBuilder builder;
  final RouteSettings settings;

  @override
  Widget buildTransitions(BuildContext context, Animation<double> animation,
      Animation<double> secondaryAnimation, Widget child) {
    return child;
  }
}

をどっかで定義して

Navigator.pushReplacement(
    context,
    NonAnimatingRoute<Null>(
        settings: const RouteSettings(name: '/init'),
        builder: (BuildContext context) => InitialPage()));

みたいな。

Unity UIWidgetsだと

public class NonAnimatingRoute : MaterialPageRoute
{
    public NonAnimatingRoute(
        WidgetBuilder builder = null,
        RouteSettings settings = null,
        bool maintainState = true,
        bool fullscreenDialog = false) :
        base(builder: builder, settings: settings, maintainState: maintainState,
            fullscreenDialog: fullscreenDialog)
    {
    }

    public override Widget buildTransitions(BuildContext context, Animation<float> animation,
        Animation<float> secondaryAnimation, Widget child)
    {
        return child;
    }
}

をどっかで定義して

Navigator.of(context).push(
    new NonAnimatingRoute(
        settings: new RouteSettings(name: "/init"),
        builder: (BuildContext context) => new InitView()));

みたいな。

UIWidgets、困ってもFlutterのコード資産をほぼそのまま使えるのがいいですね。笑