skip to Main Content

The argument type ‘Color’ can’t be assigned to the parameter type ‘String’ , I expect to change the color of the text stored in the variable ‘status’ when the status is set to closed. please help me to fix this..

class _todaysMealState extends State<todaysMeal> {
  String itemName = "<item_name>",
      time = "<time>",
      dayTime = "<time?>",
      status = "status",
      itemImage = "lib/images/default.png";
  Color statusColor = Colors.green;

  _todaysMealState({required this.itemName,
    required this.itemImage,
    required this.time,
    required this.dayTime,
    required this.status});

  @override
  Widget build(BuildContext context) {
    double height = MediaQuery
        .of(context)
        .size
        .height;
    double width = MediaQuery
        .of(context)
        .size
        .width;
    return Card(
      color: const Color(0xFF2B2E3F),
      shape: const RoundedRectangleBorder(
        borderRadius: BorderRadius.all(Radius.circular(10)),
      ),
      .....
              trailing: Text(
                status == "Closed" ? statusColor = const Color(0xFFFF0000):statusColor=Colors.white,
                style:  TextStyle(
                  color: statusColor,
                  fontWeight: FontWeight.bold,
                  fontSize: 16,
                ),
              ),
              horizontalTitleGap: -15,
            ),
          ],
        ),
      )
      ,
    );
  }
}

the problem is here

trailing: Text(
                status == "Closed" ? statusColor = const Color(0xFFFF0000):statusColor=Colors.white,
                style:  TextStyle(
                  color: statusColor,
                  fontWeight: FontWeight.bold,
                  fontSize: 16,
                ),
              ),

i tried my best the rest is up to you, Thanks

3

Answers


  1.         status == "Closed" ? statusColor = const Color(0xFFFF0000):statusColor=Colors.white,
    

    creates the error inside your Text widget. It expect’s a string, but you provide a color object.

    Login or Signup to reply.
  2. Text(status,
      style:TextStyle(
                  color:status == "Closed" ?const Color(0xFFFF0000):Colors.white,
                  fontWeight: FontWeight.bold,
                  fontSize: 16,
                ),
              )
    
    Login or Signup to reply.
  3. trailing: Text('Your Text here',
                    
                    style:  TextStyle(
                      color: status == "Closed" ? const Color(0xFFFF0000):Colors.white,
                      fontWeight: FontWeight.bold,
                      fontSize: 16,
                    ),
                  ),
    
    
    

    or if you go with your statuscolor variable

    assign it in ur build method like

    statuscolor=status == "Closed" ? statusColor = const Color(0xFFFF0000):statusColor=Colors.white;
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search