Open13
Flutter 3.7(M3)対応のメモ

Dialogの背景色が白/黒から、PrimaryColorが反映されるようになってる。
M3の仕様として、elevationに応じてSurface Tonesが反映されます。
オーバーレイ表示されるPrimaryColorの透過度は、以下のように定義されていました。(上記抜粋)
値 | +1 | +2 | +3 | +4 | +5 |
---|---|---|---|---|---|
透過度 | 5% | 8% | 11% | 12% | 14% |

とりあえず、dialogThemeでelevationを低めに設定。

TabBarのデザインも変わっていた。M3サポートの影響か。

3.7以前 | 3.7以降 | |
---|---|---|
通常 | ![]() |
![]() |
タップ時 | ![]() |
![]() |
Indicatorの幅が、コンテンツ部分に限定されている様子。
※3.7以前で、タップ時にrippleがはみ出てるのはご愛嬌。。

tabs.dart
で indicatorSize
のデフォルト値が変更されていた。
indicatorSize: TabBarIndicatorSize.tab
と指定すると意図したサイズになった。
M2 | M3 |
---|---|
![]() |
![]() |
M2ではタブいっぱいにインジケータを表示、M3ではラベル部分だけにインジケータを表示していました。

あとは dividerColor が追加されていて、TabBar全体の下にDividerをひけるようになってた。

ちなみにrippleをはみ出ないようにするには splashBorderRadius
でBorderRadiusを指定すればOK

3.7.0のリリースノートはこちら

3.0.1から3.7に上げたときに、 TextFormField
の decoration
がフォーカス当たっていないときに表示されなくなった。
3.0.1 | 3.7 | |
---|---|---|
Light | ![]() |
![]() |
Dark | ![]() |
![]() |
と思ったら、LightThemeのときに色が見えなくなっているだけだった。

enabledBorder
を指定すると直る
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: 色を指定する),
borderRadius: const BorderRadius.all(Radius.circular(16)),
)