2
respostas

Não consigo instanciar meu setState, tive que adicionar ele manualmente e ainda assim não deu certo !!!

import 'dart:ffi';

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
   MyApp({Key? key}) : super(key: key);
   bool opacidade = true;

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  get children => null;

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          leading: Container(),
          backgroundColor: Colors.green,
          title: const Text('Organizador de Tarefas'),
        ),
        body:AnimatedOpacity(
          opacity: 1,
          duration: Duration(microseconds: 1000),
          child: ListView(
            scrollDirection: Axis.vertical,
            children: [
              Task('Aprender Flutter','https://miro.medium.com/max/1000/1*ilC2Aqp5sZd1wi0CopD1Hw.png',4),
              Task('Aprendendo Dart','https://avatars3.githubusercontent.com/u/1609975?v=3&s=280',5),
              Task('Comprar roupas','https://th.bing.com/th/id/R.65a91ef7d719faeeaa2e0cfaa756e28e?rik=DzMmlXo7xASp7g&pid=ImgRaw&r=0',3),
              Task('Jogar Videogame','https://th.bing.com/th/id/R.8f11653c8d9cd4aba66bbf39c4ac22c7?rik=UZw%2fX5ecm9alNg&pid=ImgRaw&r=0',1),
            ],
          ),
        ),
        floatingActionButton: FloatingActionButton(onPressed: () {
          setState((){
            opacidade = !opacidade;
          });
        }),
      ),
    );
  }
}

class Task extends StatefulWidget {
2 respostas

Ola

Parece que você está tendo problemas com a instância de setState no Flutter. Vou ajudá-lo a entender o que está errado em seu código e como corrigi-lo.

Primeiro, em sua classe _MyAppState, você declarou uma variável opacidade como um booleano, mas não a declarou como um membro de estado usando widget.. Para acessar e modificar essa variável em um StatefulWidget, você deve usá-la como widget.opacidade. Portanto, você deve fazer as seguintes alterações:

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      // ...
      body: AnimatedOpacity(
        opacity: widget.opacidade ? 1.0 : 0.0,
        duration: Duration(milliseconds: 1000),
        child: ListView(
          // ...
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          setState(() {
            widget.opacidade = !widget.opacidade;
          });
        },
      ),
    );
  }
}

Para acessar propriedades do estado no Flutter, você deve usar widget. para se referir a essas propriedades.

E Observe que eu corrigi o valor opacity em AnimatedOpacity para usar 1.0 e 0.0 em vez de 1 e 0 para garantir que sejam valores de ponto flutuante.

Com essas alterações, seu código deve funcionar corretamente. Lembra de ajustar outras partes do código conforme necessário e adicionar a lógica apropriada ao lidar com a alteração da opacidade.

Muito Obrigado pela sua assistência