The [colors] argument must not be null. If [stops] is non-null, it must have the same length as [colors]

Estou recebendo esse erro acima quando passo uma variável cor do tipo Color para criar um gradiente, como mostrado abaixo.

widget

import 'package:flutter/material.dart';


class CategoryItem extends StatelessWidget {
  final String title;
  final Color color;

  CategoryItem(this.title, this.color);

  @override
  Widget build(BuildContext context) {
    return Container(
        padding: const EdgeInsets.all(15),
        child: Text(title),
        decoration: const BoxDecoration(
            gradient: LinearGradient(
          colors: [color.withOpacity(0.7), color],
          begin: Alignment.topLeft,
          end: Alignment.bottomRight,
        ))); 
  }
}

**classe onde declaro a variável **

import 'package:flutter/material.dart';

class Category {
  final String id;
  final String title;
  final Color color;

  const Category({required this.id, required this.title, this.color = Colors.orange});
}

Primeiro, que bom encontrar outra pessoa aqui usando Flutter (acho que é a primeira postagem que vejo sobre). Comecei a estudar tem 1 semana e estou achando muito bom mesmo!

O erro deve está sendo causado pelo const ali no BoxDecoration, pois, a partir do momento que já envolva alguma variável, o const já não pode ser usado, pois haverá algo com valor dinâmico envolvido.

Remova o const do BoxDecoration que deve resolver.

1 curtida

Nossa, verdade, nem tinha repadado nisso. Obrigado!