Unity UIWidgets 画面サイズにあわせてウィジェットのサイズを変更する
UnityのUIWidgets, 便利ですね。
ただ、Flutterでよく使われるような便利なパッケージが無いのが痛いところ。
FlutterならScreenUtilをインポートして脳死でパーツサイズを指定してマルチデバイス対応できましたが、
UIWidgetsだと自分でちょっとだけコードを書く必要があります。
private Widget _initialPanel() { return new Container(color: Color.white, child: new Column( mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, children: new List<Widget> { new MaterialButton( minWidth: 300 * MediaQuery.of(context).size.width / 750, height: 600 * MediaQuery.of(context).size.height / 1334, color: new Color(0xff00BE98), onPressed: () => { this.setState(() => { this.panelState = PanelState.BeforeLogin; }); }, child: new Text("ボタン", style: new TextStyle(color: Colors.white))) } )); }
height: 600 * MediaQuery.of(context).size.height / 1334,
。
1334x750 は僕が適当に決定したベースになるスマホの縦横比です。
グローバルな定数にしておくといいかもしれません。(そしてCanvas Scalerに登録しておくといいかもしれません。)
もし、ScreenUtilと同じことがしたければ、この辺のコード を移植すればよいのではないでしょうか。
コード量も多くないし、よく使うのであれば。