Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flutter 2.0 The argument type 'Color?' can't be assigned to the parameter type 'Color'

Tags:

flutter

After I updated the flutter sdk to >=2.12.0 <3.0.0, there's a weird error saying that The argument type 'Color?' can't be assigned to the parameter type 'Color' when I try to assign the border color to the card widget, what is going on here?

Card(
  shape: RoundedRectangleBorder(
    side: BorderSide(color: Colors.blue[300], width: 2.0),
    borderRadius: BorderRadius.circular(15.0)
  ),
  child: Text('Demo')),

Full code to reproduce the error:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: Card(
              shape: RoundedRectangleBorder(
                side: BorderSide(color: Colors.blue[300], width: 2.0),
                borderRadius: BorderRadius.circular(15.0),
              ),
              child: Text('Demo')),
        ),
      ),
    );
  }
}
like image 225
qwea Avatar asked Mar 07 '21 12:03

qwea


2 Answers

just do this

 color: (Colors.blue[300])!,

it is a feature in dart Null safty for more information please check this link

https://medium.com/flutter/null-safety-flutter-tech-preview-cb5c98aba187

like image 51
AL.Sharie Avatar answered Oct 12 '22 19:10

AL.Sharie


You could alternatively do

color: Colors.blue.shade300

which gives the same result.

See the flutter docs for more info: https://api.flutter.dev/flutter/material/Colors-class.html

like image 20
David C Avatar answered Oct 12 '22 18:10

David C