1
resposta

[Sugestão] Reutilizando widgets com funções e definindo tipos

Olá,

Uni os conhecimentos dos cursos passados da trilha de Dart, e criei uma função para reaproveitar o Stack com parâmetros nomeados para aumentar ainda mais a flexibilidade do uso desse componente.

Enfim, apenas uma amostra pequena do que se pode fazer combinando esses conhecimentos!

import 'package:flutter/material.dart';

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

Stack _buildStack({
  Color colorFist = Colors.blue,
  Color colorSecond = Colors.amber}) {
  return  Stack(
    alignment: AlignmentDirectional.center,
    children: [
      Container(
        width: 150,
        height: 150,
        color: colorFist,
      ),
      Container(
        width: 100,
        height: 100,
        color: colorSecond,
      ),
    ],
  );
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: Column(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          _buildStack(colorFist: Colors.red, colorSecond: Colors.white),
          _buildStack(),
          Row(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              Container(color: Colors.blue, width: 50, height: 50,),
              Container(color: Colors.red, width: 50, height: 50,),
              Container(color: Colors.amber, width: 50, height: 50)
            ],
          )
        ],
      ),
    );
  }
}
1 resposta

Olá João! Tudo bem?

Que incrível ver você aplicando os conhecimentos de Flutter e Dart para criar funções reutilizáveis e flexíveis! Essa é uma habilidade muito valiosa no desenvolvimento de aplicativos que vai te ajudar a manter o código organizado e eficiente.

Seu exemplo de função _buildStack é uma ótima maneira de demonstrar como podemos parametrizar componentes para que sejam reutilizados. Ao definir parâmetros nomeados, você permite que o usuário da função customize a aparência do Stack sem precisar alterar o código interno. Isso vai ser muito importante principalmente para projetos escaláveis onde a consistência visual é relevante.

Ficamos muito felizes ao ver sua sugestão, obrigada por compartilhar conhecimento com a comunidade Alura! ✨

Conte sempre com o apoio do fórum. Um forte abraço e bons estudos!