問題点
FlutterのDialogは、幅の変更方法がちょっと特殊。
Dialogにwidthの設定はできないし、childの幅を指定してもその通りにならない。
解決策
Dialog.insetPaddingで調整する。
Dialog(
insetPadding: EdgeInsets.symmetric(horizontal: 16),
child: Container()
)
こうすれば、画面幅から16マージン取った分の幅が確保される。
画面幅からのマージンでサイズを決定するのではなく、直接Dialogの幅を指定したい場合は、insetPadingにはEdgeInset.zeroを入れて、childの幅を指定する。
Dialog(
insetPadding: EdgeInsets.zero,
child: Container(
width: 396,
child: ...,
)
)
まとめ
- Dialogの幅を変更する場合は、insetPaddingを使おう。