🤳 UIWidgetsでページ遷移の時に引数を渡す

2021-01-07 #Unity

今ちょうどお仕事で UIWidgets を触っています。

ページ移動時に引数を渡すみたいな事がしたくて、 Flutterだと こんな感じ で動かすのですがUnityだと書き方が違っていて混乱したのでメモ。

まずは引数として渡す値のクラスを定義します。 必要な値の設定だけじゃなくて、 static な Create メソッドを作っておくと便利。

[System.Serializable]
public class ScreenArguments
{
    public int id = -1;

    public static ScreenArguments Create(int id)
    {
        ScreenArguments obj = new ScreenArguments();
        obj.id = id;
        return obj;
    }
}

ページ遷移の時にはこんな感じで渡します。

Navigator.of(context).pushNamed("DetailPage", arguments: ScreenArguments.Create(id: 100));

遷移先の画面では ModalRoute 経由で値を受け取る事ができるようになります。

public override Widget build(BuildContext context)
{
    ScreenArguments arg = ModalRoute.of(context).settings.arguments as ScreenArguments;
    int currentId = -1;
    if (arg != null)
    {
        currentId = arg.id;
    }
    Debug.Log(currentId);

    return new Scaffold(...);
}

UIWidgets はこの度初めて触ったのですが、デザインを入れるのにRectTransformと格闘しなくてもよくなるので、作業が楽になりそうです。

comments powered by Disqus
Profile
😛

石原 悠 / Yu Ishihara

デザインとプログラミングとヨーグルト作りが好きです。