最小的可重現代碼:
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(40),
child: Scaffold(),
);
}

我在我的 后面看到黑色背景Scaffold,顯然這不是Theme.of(context).scaffoldBackgroundColor因為淺色和深色主題都顯示相同的白色。那么,它是什么顏色呢?
uj5u.com熱心網友回復:
ThemeData 中沒有定義該顏色的屬性。您可以查看:
線性漸變
class App extends StatelessWidget {
const App({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(scaffoldBackgroundColor: Colors.white70),
home: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [Colors.blue, Colors.blue.shade600, Colors.blue.shade900],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
),
),
child: const Padding(
padding: EdgeInsets.all(40),
child: Scaffold(),
),
),
);
}
}

uj5u.com熱心網友回復:
在這里,當您在螢屏上使用 Padding 或任何其他小部件作為父級時,您將獲得來自主題或來自 main.dart 檔案的 MaterialApp 初始小部件的背景顏色。
如果您需要單獨在這個單一螢屏上使用任何特定顏色。然后,
- 使用腳手架作為父級并應用背景顏色。使用 padding 作為它的直接子級。
- 將 Theme 小部件包裝到 Padding 小部件
uj5u.com熱心網友回復:
我發現腳手架的默認背景顏色backgroundColor來自ThemeData.scaffoldBackgroundColor
如果我們不定義scaffoldBackgroundColor它來自 canvasColor
scaffoldBackgroundColor ??= canvasColor;
畫布顏色在源代碼中定義, 如
canvasColor ??= isDark ? Colors.grey[850]! : Colors.grey[50]!;
因此,默認顏色scaffoldBackgroundColor是Colors.grey[50]
黑色來了是因為Padding。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/401663.html
上一篇:無法在顫振中打開.pem檔案
