Top de mais as aulas professor! Estou acompanhando e refazendo as aulas ainda em 2024 rsrs. Algumas coisas mudaram, mas da pra seguir e ir resolvendo as mudanças. Nessa aula, ao mandar debugar, dava erro falando que: LateError (LateInitializationError: Field 'pc' has not been initialized.) Ai achei uma "solução" no stackoverflow, falando para inicializar a "pc" como nullable... usando "PageController? pc;" e funcionou. Qual a diferença de "late" e "?" na declaração da variavel?
Isso. late é inicialização tardia da variável, mas você está informando ao compilador que vai inicializar ela. A variavel? significa que ela pode receber o valor null ou o tipo definido.
Ótimos vídeos, estou conseguindo acompanhar bem, mas estou com uma duvida pontual. Alguém ajuda: Tenho paginas na PageView bacana, lista de pessoas, quando clica em uma pessoa para abrir uma outra view de detalhes, ele cobre a bottombar. Tem como abrir sem cobrir? Mantendo a bottombar visível.
Muito bom! Dúvida: segui o código conforme o video, porém não consigo alternar por gestos entre as pages. A pagina fica estática. Por problema de recurso de maquina estou utilizando vscode e rodando no device chrome. O que pode ser? valeu!
Boa noite, Professor! está ocorrendo o seguinte erro quando mudo de página : Ocorreu uma exceção. FlutterError (Looking up a deactivated widget's ancestor is unsafe. At this point the state of the widget's element tree is no longer stable. To safely refer to a widget's ancestor in its dispose() method, save a reference to the ancestor by calling dependOnInheritedWidgetOfExactType() in the widget's didChangeDependencies() method.) Como resolver tal erro?
Provavelmente as suas animações estão sendo inicializadas tardiamente (late) na sua MoedaPage, se você a nomeou assim. O certo é você inicializar a variável _controller e _animation dentro do initState da MoedaPage. O código ficaria mais ou menos assim: late AnimationController _controller; late CurvedAnimation _animation; @override void initState() { super.initState(); _controller = AnimationController( vsync: this, duration: const Duration(microseconds: 400), )..forward(); _animation = CurvedAnimation( parent: _controller, curve: Curves.fastOutSlowIn, ); } @override void dispose() { super.dispose(); _controller.dispose(); _animation.dispose(); }
Dá uma olhada neste vídeo de algumas extensões úteis ruclips.net/video/cg_1hK0-VaU/видео.html... Para criar o esqueleto dos arquivos uso uma extensão de snippets para o Flutter 👍
@@alessontoniazzo8054 Está executando em um emulador ou dispositivo físico? Dá uma comparada com o código fonte do git para ver se há algum detalhe diferente.
Todo mundo mostra estas pageviews, mas ninguém mostra conteúdo com botões que podem fazer diversas ações, acho que java não faz isso, ficando uma linguagem a ser esquecida como o kotlin. ambas fracas demais para um aplicativo de verdade.
A qualidade das aulas é incrível, está me ajudando tremendamente, muito obrigado por este conteúdo gratuito professor.
Muito obrigado pelo apoio Luis!!! Grande abraço
Meu amigo. Você é o único que ensina de verdade. O resto é resto...
Obrigado 👍
Bom demais.. tu ensina pra gente aprender, detalhando todos os passos... alguns professores ensinam so por ensinar.
Muito obrigado!!! Fico feliz que o formato está dando certo e agregando valor 🚀
Obrigado por compartilhar seu conhecimento
Cara, to literalmente sem palavras para agradecer a sua didática! Muito obrigado e parabéns :))
Excelente aula professor!
to acompanhando essa série e to curtindo muito, parabéns pela didática. uma das melhores que já vi.
Valeu Fernando!!!! Seja bem vindo 🚀
Top de mais as aulas professor!
Estou acompanhando e refazendo as aulas ainda em 2024 rsrs. Algumas coisas mudaram, mas da pra seguir e ir resolvendo as mudanças.
Nessa aula, ao mandar debugar, dava erro falando que: LateError (LateInitializationError: Field 'pc' has not been initialized.)
Ai achei uma "solução" no stackoverflow, falando para inicializar a "pc" como nullable... usando "PageController? pc;" e funcionou. Qual a diferença de "late" e "?" na declaração da variavel?
Isso. late é inicialização tardia da variável, mas você está informando ao compilador que vai inicializar ela. A variavel? significa que ela pode receber o valor null ou o tipo definido.
Vlw
Ótimos vídeos, estou conseguindo acompanhar bem, mas estou com uma duvida pontual. Alguém ajuda: Tenho paginas na PageView bacana, lista de pessoas, quando clica em uma pessoa para abrir uma outra view de detalhes, ele cobre a bottombar. Tem como abrir sem cobrir? Mantendo a bottombar visível.
Sim, esse é o comportamento normal, pois o sistema de navegação irá abrir uma nova página. Por que precisa que as tags continuem aparecendo?
da pra botar essa "Bottonnavigatiobar" em cima?
Tem algum widget que faca isso?
No topo é a AppBar e as TabBar dentro da AppBar.
Muito bom!
Dúvida: segui o código conforme o video, porém não consigo alternar por gestos entre as pages. A pagina fica estática.
Por problema de recurso de maquina estou utilizando vscode e rodando no device chrome.
O que pode ser?
valeu!
Acredito que seja por conta do Chrome. Quando você compila para Web ou Desktop os gestos mudam para scroll geralmente 👍
Boa noite, Professor! está ocorrendo o seguinte erro quando mudo de página : Ocorreu uma exceção.
FlutterError (Looking up a deactivated widget's ancestor is unsafe.
At this point the state of the widget's element tree is no longer stable.
To safely refer to a widget's ancestor in its dispose() method, save a reference to the ancestor by calling dependOnInheritedWidgetOfExactType() in the widget's didChangeDependencies() method.)
Como resolver tal erro?
O que está tentando executar? Alguma dialog ?
Não. Navegação com PageView.
Quando mudo de página, seja arrastando ou através do Bottom Navigation, mostra esse erro.
@@jairosilvajs Estranho, precisaria analisar o código. Mas parece algum problema de acessar uma widget que não está carregada devidamente.
Provavelmente as suas animações estão sendo inicializadas tardiamente (late) na sua MoedaPage, se você a nomeou assim. O certo é você inicializar a variável _controller e _animation dentro do initState da MoedaPage. O código ficaria mais ou menos assim:
late AnimationController _controller;
late CurvedAnimation _animation;
@override
void initState() {
super.initState();
_controller = AnimationController(
vsync: this,
duration: const Duration(microseconds: 400),
)..forward();
_animation = CurvedAnimation(
parent: _controller,
curve: Curves.fastOutSlowIn,
);
}
@override
void dispose() {
super.dispose();
_controller.dispose();
_animation.dispose();
}
Boa tarde, com o pageview consigo meter a bottom navigation fixa em todas as minhas paginas da app?
Sim é possível! Só a navegação interna em uma tab é mais complicada...(caso queira sempre manter visível a bottom bar)
Professor, qual é esse atalho que o sr. usa para criar os arquivos ?
Dá uma olhada neste vídeo de algumas extensões úteis ruclips.net/video/cg_1hK0-VaU/видео.html... Para criar o esqueleto dos arquivos uso uma extensão de snippets para o Flutter 👍
@@drantunes Obrigado!
As vezes, quando entro no app, eu não consigo fazer o gesto para navegar, e a tab não carrega, sabe o que pode ser professor?
Estranho, pode ser alguma computação pesada talvez ou algum setState fora do lugar, mas teria que analisar o código
@@drantunes Quando dou um hot restart ele carrega corretamente, mostrando a tab e tudo mais, só carrega diferente a primeira vez...
@@alessontoniazzo8054 Está executando em um emulador ou dispositivo físico? Dá uma comparada com o código fonte do git para ver se há algum detalhe diferente.
Todo mundo mostra estas pageviews, mas ninguém mostra conteúdo com botões que podem fazer diversas ações, acho que java não faz isso, ficando uma linguagem a ser esquecida como o kotlin. ambas fracas demais para um aplicativo de verdade.