1
resposta

Código funciona somente com onPressed

O meu código só funcionou com onPressed. Se tiro, pede para colocar algum parâmetro obrigatório.

Outra coisa, em title e em child, está pedindo para colocar "const" no código.

import 'package:flutter/material.dart';

void main() => runApp(MaterialApp( home: Scaffold( // ignore: prefer_const_constructors appBar: AppBar( title: Text('Transferências'), ), floatingActionButton: FloatingActionButton( onPressed: () {}, child: Icon(Icons.add), ), ), ));

1 resposta

Olá Luiz.

Referente a obrigatoriedade do argumento onPressed no construtor do widget FloatingActionButton, não há o que fazer, o código nativo dele marca como required esse argumento, mas tem algo interessante nesse argumento, ele pode ser nulo(null safety).

Não sei em qual contexto que você está trabalhando ao qual é importante ocultar esse argumento, mas existe essa solução, que é removendo a obrigatoriedade de informar explicitamente o argumento onPressed através da customização por meio de herança (POO):

class MyFloatingActionButton extends FloatingActionButton {
  const MyFloatingActionButton({
    Key? key,
    VoidCallback? onPressed,
    required Widget child,
  }) : super(
          key: key,
          onPressed: onPressed,
        );
}

Implementação no seu código:

import 'package:flutter/material.dart';

/// Cole o código acima aqui (MyFloatingActionButton)
/// Ou importe ele por meio de outro arquivo

void main() => runApp(
    MaterialApp(
        home: Scaffold(
            // ignore: prefer_const_constructors
            appBar: AppBar(
                title: Text('Transferências'),
            ),
            floatingActionButton: MyFloatingActionButton(
                child: Icon(Icons.add),
            ),
        ),
    ),
);

O Dart na IDEs mais atuais sempre irá informa quando você pode implementar algo como constante, ele faz isso para deixa-lo informado, pois isso é uma boa prática para a performance da aplicação. É bom ler artigos referentes a isso.