Double back per chiudere l'applicazione in Flutter con double_back_to_close

Mattepuffo's logo
Double back per chiudere l'applicazione in Flutter con double_back_to_close

Double back per chiudere l'applicazione in Flutter con double_back_to_close

In Flutter abbiamo diverse librerie che ci permettono di gestire il double back per chiudere l'applicazione.

Io ho testato double_back_to_close e mi sembra funzionare bene.

In questo articolo vediamo un paio di esempi.

Cominciamo con l'installazione:

flutter pub add double_back_to_close

Questo un primo esempio:

import 'package:double_back_to_close/double_back_to_close.dart';
import 'package:flutter/material.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(),
      home: const DoubleBack(
        message: "Premi di nuovo per uscire!",
        child: 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: const Center(
        child: Text("CIAO"),
      ),
    );
  }
}

Qui sotto usiamo la SnackBar:

import 'package:double_back_to_close/double_back_to_close.dart';
import 'package:flutter/material.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(),
      home: DoubleBack(
        onFirstBackPress: (context) {
          const snackBar = SnackBar(
            content: Text('Premi di nuovo per uscire!'),
          );
          ScaffoldMessenger.of(context).showSnackBar(snackBar);
        },
        child: 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: const Center(
        child: Text("CIAO"),
      ),
    );
  }
}

Nella pagina ufficiale potete vedere altri esempi.

Enjoy!


Condividi

Commentami!