Olá amigos, Segui o passo a passo da aula e estava tudo indo bem, até o momento de rodar o código do "debugPrint('$transferenciaCriada')".
Neste momento o console apresentou o seguinte erro e não consigo rodar meu código:
Compiler message: lib/main.dart:116:10: Error: The method 'Transferencia.toString' has fewer named arguments than those of overridden method 'DiagnosticableMixin.toString'. String toString() { ^ ../flutter/packages/flutter/lib/src/foundation/diagnostics.dart:3092:10: Context: This is the overridden method ('toString'). String toString({ DiagnosticLevel minLevel = DiagnosticLevel.debug }) { ^
Alguém sabe como resolver? O erro está na conversão para String, ja mudei varias coisas, mas até agora nada funcionou. Obrigado!
import 'package:flutter/material.dart';
void main() => runApp(BytebankApp());
class BytebankApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: FormularioTransferencia(),
),
);
}
}
class FormularioTransferencia extends StatelessWidget {
final TextEditingController _controladorCampoNumeroConta =
TextEditingController();
final TextEditingController _controladorCampoValor = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Criando Transferência'),
),
body: Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.all(16.0),
child: TextField(
controller: _controladorCampoNumeroConta,
style: TextStyle(fontSize: 24.0),
decoration: InputDecoration(
labelText: 'Número da Conta',
hintText: '0000',
),
keyboardType: TextInputType.number,
),
),
Padding(
padding: const EdgeInsets.all(16.0),
child: TextField(
controller: _controladorCampoValor,
style: TextStyle(fontSize: 24.0),
decoration: InputDecoration(
icon: Icon(Icons.monetization_on),
labelText: 'Valor',
hintText: '0.00',
),
keyboardType: TextInputType.number,
),
),
RaisedButton(
child: Text('Confirmar'),
onPressed: () {
debugPrint('clicou no botão');
final int numeroConta =
int.tryParse(_controladorCampoNumeroConta.text);
final double valor = double.tryParse(_controladorCampoValor.text);
if (numeroConta != null && valor != null) {
// verificação
final transferenciaCriada = Transferencia(valor, numeroConta);
debugPrint('$transferenciaCriada');
}
},
),
],
),
);
}
}
class ListaTransf extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
ItemTransf(Transferencia(100, 1000)),
ItemTransf(Transferencia(200, 2002)),
ItemTransf(Transferencia(300, 3001)),
],
),
floatingActionButton: FloatingActionButton(child: Icon(Icons.add)),
appBar: AppBar(
title: Text('Transferências'),
),
);
}
}
class ItemTransf extends StatelessWidget {
final Transferencia _transf;
const ItemTransf(this._transf);
@override
Widget build(BuildContext context) {
return Card(
child: ListTile(
leading: Icon(Icons.monetization_on),
title: Text(_transf.valor.toString()),
subtitle: Text(_transf.numeroConta.toString()),
));
}
}
class Transferencia extends StatelessWidget {
final double valor;
final int numeroConta;
Transferencia(this.valor, this.numeroConta);
@override
String toString() {
return 'Transferencia{valor: $valor, numeroConta: $numeroConta}';
}
@override
Widget build(BuildContext context) {
return null;
}
}