LoginSignup
4
5

More than 5 years have passed since last update.

[Flutter] 自然な画面移動してみよう。

Posted at

こんにちは! Flutter楽しんでますか?

アンドロイドアプリ作ってみるとActivity移動が必要場合あります。
その時、intentを使うんですね?startActivityとかさ。

FlutterでActivity移動ももちろん、


ます。

例えば、こんな感じです。


1. Navigator.pop(context);
2. Navigator.of(context).pop();
3. Navigator.of(context).push();
4. Navigator.of(context).push(builder:()...);

はい。stackです。

アンドロイドNative開発もactivityはStack Memoryにどんどん溜まっていきます。あなたはActivity間移動する際にアニメーション付けたくなりませんか? FlutterではPageRouteBuilderを相続して、作りたい移動クラスをコーティングすると簡単にできます。

こんな感じです。


import 'package:flutter/material.dart';

class ScaleRoute extends PageRouteBuilder {
  final Widget widget;

  ScaleRoute({this.widget})
      : super(pageBuilder: (BuildContext context, Animation<double> animation,
            Animation<double> secondaryAnimation) {
          return widget;
        }, transitionsBuilder: (BuildContext context,
            Animation<double> animation,
            Animation<double> secondaryAnimation,
            Widget child) {
          return ScaleTransition(
            scale: Tween<double>(
              begin: 0.0,
              end: 1.0,
            ).animate(
              CurvedAnimation(
                  parent: animation,
                  curve: Interval(0.00, 0.5, curve: Curves.elasticIn)),
            ),
            child: ScaleTransition(
                scale: Tween<double>(
              begin: 0.5,
              end: 1.0,
            ).animate(CurvedAnimation(
                    parent: animation,
                    curve: Interval(0.5, 1.0, curve: Curves.decelerate,
                    )
                ),
                ),
              child: child,
            ),

          );
        });
}

簡単?ですかね

1.pageBuilder :(){}
2.transitionsBuilder(){}

に、あなたが試してみたいアニメーションを使うとオッケーです。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5