更新 `Checkbox.fillColor` 行為
摘要
#現在,當核取方塊未被選取時,Checkbox.fillColor
會應用於核取方塊的背景。
背景
#先前,當核取方塊未被選取且背景為透明時,Checkbox.fillColor
會應用於核取方塊的邊框。 進行此變更後,當核取方塊未被選取時,Checkbox.fillColor
會應用於核取方塊的背景,而邊框則使用 Checkbox.side
的顏色。
變更說明
#現在,當核取方塊未被選取時,Checkbox.fillColor
會應用於核取方塊的背景,而不是用作邊框顏色。
遷移指南
#更新後的 Checkbox.fillColor
行為會在未選取狀態下將填滿顏色應用於核取方塊的背景。 若要取得先前的行為,請在未選取狀態下將 Checbox.fillColor
設定為 Colors.transparent
,並將 Checkbox.side
設定為所需的顏色。
如果您使用 Checkbox.fillColor
屬性來自訂核取方塊。
遷移前的程式碼
dart
Checkbox(
fillColor: MaterialStateProperty.resolveWith((states) {
if (!states.contains(MaterialState.selected)) {
return Colors.red;
}
return null;
}),
value: _checked,
onChanged: _enabled
? (bool? value) {
setState(() {
_checked = value!;
});
}
: null,
),
遷移後的程式碼
dart
Checkbox(
fillColor: MaterialStateProperty.resolveWith((states) {
if (!states.contains(MaterialState.selected)) {
return Colors.transparent;
}
return null;
}),
side: const BorderSide(color: Colors.red, width: 2),
value: _checked,
onChanged: _enabled
? (bool? value) {
setState(() {
_checked = value!;
});
}
: null,
),
如果您使用 CheckboxThemeData.fillColor
屬性來自訂核取方塊。
遷移前的程式碼
dart
checkboxTheme: CheckboxThemeData(
fillColor: MaterialStateProperty.resolveWith((states) {
if (!states.contains(MaterialState.selected)) {
return Colors.red;
}
return null;
}),
),
遷移後的程式碼
dart
checkboxTheme: CheckboxThemeData(
fillColor: MaterialStateProperty.resolveWith((states) {
if (!states.contains(MaterialState.selected)) {
return Colors.transparent;
}
return null;
}),
side: const BorderSide(color: Colors.red, width: 2),
),
時間軸
#已於版本中發布:3.10.0-17.0.pre
在穩定版本中:3.13.0
參考資料
#API 文件
相關問題
相關的 PR
除非另有說明,否則本網站上的文件反映了 Flutter 的最新穩定版本。 頁面最後更新於 2024-04-04。 檢視原始碼 或 回報問題。