Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Desafio feito -com um toque no final

Olá, Desafio feito #compartilhando

Desafio feito final

// task.dart
import 'package:flutter/material.dart';

import 'difficult.dart';

class Task extends StatefulWidget {
  final String nameTask;
  final String srcImage;
  final int difficult;

  const Task(
      {required this.nameTask,
      required this.srcImage,
      required this.difficult,
      super.key});

  @override
  State<Task> createState() => _TaskState();
}

class _TaskState extends State<Task> {
  int nivel = 0;
  int master = 1;
  late Color color;

  @override
  Widget build(BuildContext context) {
    switch (master) {
      case 1:
        color = Colors.blue;
        break;
      case 2:
        color = Colors.green;
        break;
      case 3:
        color = Colors.amber;
        break;
      case 4:
        color = Colors.orange;
        break;
      case 5:
        color = Colors.redAccent;
        break;
      case 6:
        color = Colors.purpleAccent;
        break;
      case 7:
        color = Colors.black;
        break;
    }

    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: Stack(
        children: [
          Container(
            height: 140,
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(4),
              color: color,
            ),
          ),
          Column(
            children: [
              Container(
                decoration: BoxDecoration(
                  borderRadius: BorderRadius.circular(4),
                  color: Colors.white,
                ),
                height: 100,
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: [
                    Container(
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(4),
                        color: Colors.black26,
                      ),
                      width: 72,
                      height: 100,
                      child: ClipRRect(
                        borderRadius: BorderRadius.circular(4),
                        child: Image.asset(
                          widget.srcImage,
                          fit: BoxFit.cover,
                        ),
                      ),
                    ),
                    Column(
                      mainAxisAlignment: MainAxisAlignment.center,
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        SizedBox(
                          width: 200,
                          child: Text(
                            widget.nameTask,
                            style: const TextStyle(
                                fontSize: 24, overflow: TextOverflow.ellipsis),
                          ),
                        ),
                        Difficulty(difficultyLevel: widget.difficult)
                      ],
                    ),
                    SizedBox(
                      height: 64,
                      width: 80,
                      child: ElevatedButton(
                          onPressed: () {
                            if (master <= 7) {
                              setState(() {
                                nivel++;

                                if (nivel >= widget.difficult * 10) {
                                  nivel = 1;
                                  master++;
                                }
                              });
                            }
                          },
                          
                          // O resto é igual
2 respostas
solução!

Olá Ewerton!

Tudo bem?

Muito obrigado por compartilhar o seu desafio aqui com a gente, parabéns pelo progresso, e continue assim. O projeto ficou muito legal.

Olhando o seu código parece que você está construindo um widget chamado "Task" no Flutter. Esse widget possui algumas propriedades, como "nameTask" (que é o nome da tarefa), "srcImage" (que é o caminho da imagem) e "difficult" (que é o nível de dificuldade da tarefa).

Dentro do método build do widget, você está criando uma estrutura de layout que consiste em um Stack contendo um Container (que representa o fundo colorido da tarefa) e uma coluna contendo informações da tarefa, como o nome e a dificuldade.

Além disso, você tem um botão que, quando pressionado, aumenta o nível da tarefa. Se o nível atingir um múltiplo de 10 vezes a dificuldade, o nível é resetado para 1 e o "master" (que parece ser um indicador de progresso) é incrementado.

No entanto, notei que você não concluiu a implementação do botão. O trecho de código "// O resto é igual" indica que há mais código a ser adicionado ali.

Se você tiver alguma dúvida específica sobre essa implementação ou precisar de ajuda com algum problema em particular, por favor, me avise. Estou aqui para ajudar!

Valeu, bons estudos!

Só não cabia mesmo o restante rsrs Limite de 5k