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のコード資産をほぼそのまま使えるのがいいですね。笑