'error: The argument type 'Color' can't be assigned to the parameter type 'MaterialColor'?

 primaryColor: const Color(0xff090C22),
        colorScheme: ColorScheme.fromSwatch(
          primarySwatch: Color(0xff090C22),
        ),
      ),

I want that specific color to change the appbar color and to be the primary color but instead it showed this error

error: The argument type 'Color' can't be assigned to the parameter type 'MaterialColor'. (argument_type_not_assignable at [bmi_calculator] lib\main.dart:12)



Solution 1:[1]

You can use your custom color like this,

First creating your file name where all you color is defined .

import 'package:flutter/material.dart'; 
class Palette { 
  static const MaterialColor kToDark = const MaterialColor( 
    0xffe55f48, // 0% comes in here, this will be color picked if no shade is selected when defining a Color property which doesn’t require a swatch. 
    const <int, Color>{ 
      50: const Color(0xffce5641 ),//10% 
      100: const Color(0xffb74c3a),//20% 
      200: const Color(0xffa04332),//30% 
      300: const Color(0xff89392b),//40% 
      400: const Color(0xff733024),//50% 
      500: const Color(0xff5c261d),//60% 
      600: const Color(0xff451c16),//70% 
      700: const Color(0xff2e130e),//80% 
      800: const Color(0xff170907),//90% 
      900: const Color(0xff000000),//100% 
    }, 
  ); 
} 

Here , we can import and use it as follows,

import 'package:flutter/material.dart'; 
import 'config/palette.dart'; 
void main() { 
runApp(App()); 
} 
class App extends StatelessWidget { 
 @override 
 Widget build(BuildContext context) { 
     return MaterialApp( 
       title: 'Demo for swatch', 
       theme: ThemeData(   
            primarySwatch: Palette.kToDark, //our palette goes here by tapping into the class 
 ), 
 home: YourFirstPage(), 
 ); 
 } 
} 

Solution 2:[2]

primarySwatch takes MaterialColor. You can check different between primaryColor and primarySwatch

MaterialColor Defines a single color as well a color swatch with ten shades of the color.
The color's shades are referred to by index. The greater the index, the darker the color. There are 10 valid indices: 50, 100, 200, ..., 900. The value of this color should the same the value of index 500 and shade500.

We need to provide primarySwatch: Colors.black, where Colors.black can use different shades.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Manishyadav
Solution 2 Yeasin Sheikh