我有一個小部件,我最好喜歡採用基礎材質顏色並輸出以該顏色爲主題的小部件。例如:是否有Flutter材質設計顏色的地圖?
return new Container(
color: Colors.pink.shade50,
child: new Text(
'hello',
style: new TextStyle(
color: Colors.pink.shade100,
),
),
);
要求我指定兩個粉色陰影。理想情況下,我可以這樣做:
Color color = getBaseColorForThisPage(); // returns something like Colors.pink, but on another page, it'll return something like Colors.purple
return new Container(
color: color.shade50,
child: new Text(
'hello',
style: new TextStyle(
color: color.shade100,
),
),
);
有沒有辦法返回一個調色板中的色彩材料「地圖」,而不是隻是一個單一的顏色?當我查看IntelliJ中的自動完成功能時,我看到在輸入Colors.pink
之後,我可以指定陰影。但是,如果我將顏色設置爲變量,例如Color color = Colors.pink
,我後來無法做到color.shade100
或color[100]
。謝謝!
我一定要定義映射自己的ColorSwatch,或者是有什麼辦法可以參考MaterialColor地圖?到目前爲止,這是我的代碼片段(道歉格式化),我必須手動定義顏色的每個陰影: 'var map = new Map(); 012.map.putIfAbsent(50,()=> Colors.pink [50]); map.putIfAbsent(100,()=> Colors.pink [100]); var colorswatch = new ColorSwatch(500,map); //更新後的設置顏色: //顏色:colorswatch [50]' 我嘗試使用Colors.primaries中的顏色,但它們返回的是MaterialColor而不是Map。 –
Mary
我不確定你爲什麼在這裏使用'Map'。你可以說'ColorSwatch color = Colors.pink;',稍後你可以說'color [50]'。如果您知道所有色板都是「MaterialColor」,只需使用「MaterialColor」作爲「color」的類型。 –
啊,我以爲我不得不實例化一個新的ColorSwatch對象(它需要一個Map)!我沒有意識到我可以將ColorSwatch對象設置爲現有的MaterialColor。謝謝。 – Mary