Creare spazi tra widget in Flutter con gap

Mattepuffo's logo
Creare spazi tra widget in Flutter con gap

Creare spazi tra widget in Flutter con gap

Quando dobbiamo creare degli spazi tra i widget in Flutter abbiamo una paio di  possibilità, come usare i padding o SizedBox.

Se vogliamo qualcosa di più conciso e flessibile possiamo usare gap!

Per installarlo:

flutter pub add gap

Qui sotto un esempio di codice:

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

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Test',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(
          seedColor: Colors.deepPurple,
        ),
        useMaterial3: true,
      ),
      home: const MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: const Text('Flutter Test'),
      ),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Container(
            color: Colors.black,
            height: 20,
          ),
          const Gap(
            20,
            color: Colors.green,
            crossAxisExtent: 10,
          ),
          Container(
            color: Colors.black,
            height: 20,
          ),
          const Gap(
            20,
            color: Colors.amber,
            crossAxisExtent: 50,
          ),
          Container(
            color: Colors.black,
            height: 20,
          ),
          const Gap.expand(
            20,
            color: Colors.purple,
          ),
        ],
      ),
    );
  }
}

Enjoy!


Condividi

Commentami!