ImageFilter.blur 預設平鋪模式自動選擇。
概述
#ui.ImageFilter.blur 的預設平鋪模式現在由後端自動選擇。以前,除非指定了不同的平鋪模式,否則會使用 TileMode.clamp。現在,預設值為 null,表示自動選擇,除非指定了特定的平鋪模式。
背景
#ImageFilter.blur 的平鋪模式指定了應用於濾鏡的邊緣畫素會發生什麼。有四種選項:
TileMode.clamp(以前的預設值)Tilemode.repeatedTileMode.mirrorTileMode.decal
以前,如果未指定行為,ImageFilter 預設使用 clamp 模式。這有時會令開發者感到意外,因為它並不總是符合預期。
在此更改之後,濾鏡會根據上下文自動選擇以下平鋪模式:
- 當使用 save layers 或應用於單個形狀繪製(例如使用
drawRect和drawPath)時,使用decal。 - 當與 backdrop filters 一起使用時,使用
mirror。 - 對於
drawImage,使用clamp。
遷移指南
#只有未明確指定平鋪模式的模糊影像濾鏡會受到此更改的影響。
我們認為新的預設值總體上更好,並建議移除任何指定的模糊平鋪模式。
遷移前的程式碼
dart
final filter = ui.ImageFilter.blur(sigmaX: 4, sigmaY: 4, tileMode: TileMode.decal);遷移後的程式碼
dart
final filter = ui.ImageFilter.blur(sigmaX: 4, sigmaY: 4);時間線
#已在版本中釋出: 3.28.0-0.1.pre
穩定版釋出於: 3.29
參考資料
#API 文件
相關問題
相關 PR