當我嘗試定義顏色串列時,我收到以下訊息:元素型別“顏色?” 無法分配給串列型別“顏色”
return Scaffold(
body: Container(
padding: EdgeInsets.symmetric(vertical:30.0),
width: double.infinity,
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.topCenter,
colors: [
Colors.orange[900],
Colors.orange[800]
]
)
),
),
);
我需要幫助
uj5u.com熱心網友回復:
當使用下標從 a 獲取顏色時ColorSwatch,您將得到 aColor?可能是空值。那是因為沒有這樣的值,例如,Colors.orange[1234]- 所以那將是一個空值。
另一方面, 上的colors串列需要所有不可為空的值。LinearGradient
在您的情況下,您可以安全地斷言這些值是非空的,因為您所指的顏色肯定存在:
gradient: LinearGradient(
begin: Alignment.topCenter,
colors: [
Colors.orange[900]!,
Colors.orange[800]!
]
)
您也可以完全避免使用下標,如下所示:
gradient: LinearGradient(
begin: Alignment.topCenter,
colors: [
Colors.orange.shade900,
Colors.orange.shade800,
]
)
可能有用的鏈接:
材質顏色
聲音零安全
uj5u.com熱心網友回復:
每當使用漸變時..我更好的方法是通過提供其十六進制代碼來使用顏色..在您撰寫顏色時顫動。它向您顯示顏色串列及其十六進制代碼的陰影.. https://api.flutter.dev/flutter/material/Colors-class.html
就像在這個鏈接中一樣。所以像這樣更新你的代碼
漸變:LinearGradient(開始:Alignment.topCenter,顏色:[常量顏色(0xFFE65100),常量顏色(0xFFEF6C00),])
使用十六進制顏色代碼更好,因為它們的值保持不變,并且當狀態改變時,該部分保持不變(不重建)
有用的話點個贊
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/420868.html
標籤:
上一篇:僅在顫動中淡入影片
下一篇:改變值onTap
