Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Formatação de botões no flutter

Atualmente passo o texto do botão como parâmetro, ai queria saber se é possível também passar a cor do texto e um ícone.

import 'package:flutter/material.dart';

class Button extends StatelessWidget {
  final String buttonText;

  const Button(this.buttonText, {Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return TextButton(
      onPressed: () {},
      style: TextButton.styleFrom(
        foregroundColor: Colors.black,
        shape: const CircleBorder(),
        padding: const EdgeInsets.all(20),
      ),
      child: Text(
        buttonText,
        style: const TextStyle(color: Colors.white, fontSize: 30),
      ),
    );
  }
}
1 resposta
solução!

Olá Carlos, tudo bem?

Sim, é possível passar a cor do texto e um ícone como parâmetros para o botão no Flutter. Para isso, você precisa adicionar dois novos parâmetros na classe Button: um para a cor do texto e outro para o ícone.

Veja como ficaria o código com essas alterações:

import 'package:flutter/material.dart';

class Button extends StatelessWidget {
  final String buttonText;
  final Color textColor;
  final IconData? icon;

  const Button(this.buttonText, {Key? key, this.textColor = Colors.white, this.icon,}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return TextButton(
      onPressed: () {},
      style: TextButton.styleFrom(
        foregroundColor: Colors.black,
        shape: const CircleBorder(),
        padding: const EdgeInsets.all(20),
      ),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          if (icon != null) Icon(icon, color: textColor),
          const SizedBox(width: 8),
          Text(
            buttonText,
            style: TextStyle(color: textColor, fontSize: 30),
          ),
        ],
      ),
    );
  }
}

Agora, ao criar um botão, você pode passar a cor do texto e o ícone como parâmetros opcionais:

Button('Meu botão', textColor: Colors.red, icon: Icons.add),

Nesse exemplo, o texto do botão será exibido em vermelho e um ícone de adição será exibido à esquerda do texto.

Espero ter ajudado e bons estudos!