1
resposta

Flutter não termina de compilar

O Flutter parece não estar compilando por completo, carrega apenas a estrutura com as cores, mas não detalhes como numero da conta, padding.

import 'package:flutter/material.dart';

void main() => runApp(ByteBankApp());

class ByteBankApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            appBar: AppBar(
              title: Text('Criando Transferencias'),
            ),
            body: Column(
              children: [
                TextField(),
                TextField(),
                RaisedButton(),
              ],
            )));
  }
}

class FormularioTransferencia extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Criando Transferencia'),
      ),
      body: Column(children: <Widget>[
        Padding(
          padding: const EdgeInsets.all(24.0),
          child: TextField(
            style: TextStyle(fontSize: 24.0),
            decoration: InputDecoration(
              labelText: ('Número da Conta'),
              hintText: ('0000'),
            ),
            keyboardType: TextInputType.number, //TECLADO
          ),
        ),
        Padding(
          padding: const EdgeInsets.all(24.0),
          child: TextField(
            style: TextStyle(fontSize: 24.0),
            decoration: InputDecoration(
            icon: Icon(Icons.monetization_on),
              labelText: ('Valor'),
              hintText: ('00.00'),
            ),
            keyboardType: TextInputType.number, //TECLADO
          ),
        ),

        RaisedButton()
      ]),
    );
  }
}

class ListaTransferencias extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Transferencias'),
      ),
      body: Column(
        children: <Widget>[
          ItemTransferencias(Transferencia(200.00, 3940)),
          ItemTransferencias(Transferencia(300.00, 4632)), //REFATORANDO
          ItemTransferencias(Transferencia(500.00, 7459)),
        ],
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
      ),
    );
    //throw UnimplementedError();
  }
}

class ItemTransferencias extends StatelessWidget {
  final Transferencia _transferencia;

  ItemTransferencias(this._transferencia);

  @override
  Widget build(BuildContext context) {
    return Card(
        child: ListTile(
      leading: Icon(Icons.monetization_on),
      title: Text(_transferencia.valor.toString()),
      subtitle: Text(_transferencia.numeroConta.toString()),
    ));
  }
}

class Transferencia {
  final double valor;
  final int numeroConta;

  Transferencia(this.valor, this.numeroConta); //alt+insert construtores
}
1 resposta

Oi Rodrigo, tudo bem?

Então, houveram alguns equívocos no código. O flutter está renderizando apenas o que está no widget ByteBankApp. Sendo assim, são 2 TextField e um RaisedButton vazio. E é isto o que aparece na tela. Acredito que quando você estava programando provavelmente pensou em mostrar o conteúdo do widget FormularioTransferencia. O que eu fiz para resolver o problema foi substituir o conteúdo do ByteBankApp e chamar o widget FormularioTransferencia. Também removi o scaffold do FormularioTransferencia senão teríamos 2 appBars com o título "Criando Transferencias".

Roda o código abaixo e veja o que acha, como ficou e se tem como melhorar :). Os botões estão em cinza ainda por você não ter informado um método onpressed nem um widget de Text como filho dele para ser o texto que será exibido. Mas, isso nas próximas aulas do curso você verá mais detalhadamente.

import 'package:flutter/material.dart';

void main() => runApp(ByteBankApp());

class ByteBankApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            appBar: AppBar(
              title: Text('Criando Transferencias'),
            ),
            body: FormularioTransferencia()
        )
    );
  }
}

class FormularioTransferencia extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Column(children: <Widget>[
        Padding(
          padding: const EdgeInsets.all(24.0),
          child: TextField(
            style: TextStyle(fontSize: 24.0),
            decoration: InputDecoration(
              labelText: ('Número da Conta'),
              hintText: ('0000'),
            ),
            keyboardType: TextInputType.number, //TECLADO
          ),
        ),
        Padding(
          padding: const EdgeInsets.all(24.0),
          child: TextField(
            style: TextStyle(fontSize: 24.0),
            decoration: InputDecoration(
              icon: Icon(Icons.monetization_on),
              labelText: ('Valor'),
              hintText: ('00.00'),
            ),
            keyboardType: TextInputType.number, //TECLADO
          ),
        ),

        RaisedButton()
      ],
    );
  }
}

class ListaTransferencias extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Transferencias'),
      ),
      body: Column(
        children: <Widget>[
          ItemTransferencias(Transferencia(200.00, 3940)),
          ItemTransferencias(Transferencia(300.00, 4632)), //REFATORANDO
          ItemTransferencias(Transferencia(500.00, 7459)),
        ],
      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.add),
      ),
    );
    //throw UnimplementedError();
  }
}

class ItemTransferencias extends StatelessWidget {
  final Transferencia _transferencia;

  ItemTransferencias(this._transferencia);

  @override
  Widget build(BuildContext context) {
    return Card(
        child: ListTile(
          leading: Icon(Icons.monetization_on),
          title: Text(_transferencia.valor.toString()),
          subtitle: Text(_transferencia.numeroConta.toString()),
        ));
  }
}

class Transferencia {
  final double valor;
  final int numeroConta;

  Transferencia(this.valor, this.numeroConta); //alt+insert construtores
}

Um forte abraço, e, me conta se conseguiu :D.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software