Cómo crear tostadas en Flutter

Resuelto Shady Aziza asked hace 7 años • 34 respuestas

¿ Puedo crear algo similar a Toasts en Flutter?

ingrese la descripción de la imagen aquí

Solo una pequeña ventana de notificación que no está directamente frente al usuario y no bloquea ni desvanece la vista detrás de ella.

Shady Aziza avatar Aug 30 '17 03:08 Shady Aziza
Aceptado

ACTUALIZACIÓN: Scaffold.of(context).showSnackBar está en desuso en Flutter 2.0.0 (estable)

Puede acceder al padre ScaffoldMessengerStateusando ScaffoldMessenger.of(context).

Entonces haz algo como

ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
     content: Text("Sending Message"),
));

Las snackbars son el "brindis" oficial de Material Design. Ver Chiringuitos .

Aquí hay un ejemplo completamente funcional:

Ingrese la descripción de la imagen aquí

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  const Home({
    Key key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Snack bar'),
      ),
      body: Center(
        child: RaisedButton(
          onPressed: () => _showToast(context),
          child: const Text('Show toast'),
        ),
      ),
    );
  }

  void _showToast(BuildContext context) {
    final scaffold = ScaffoldMessenger.of(context);
    scaffold.showSnackBar(
      SnackBar(
        content: const Text('Added to favorite'),
        action: SnackBarAction(label: 'UNDO', onPressed: scaffold.hideCurrentSnackBar),
      ),
    );
  }
}
Rémi Rousselet avatar Aug 29 '2017 21:08 Rémi Rousselet

Utilice el complemento fluttertoast

agregue esta línea a sus dependencias

fluttertoast: ^8.1.1

Luego puede usar Toast sin contexto de compilación (tiene funciones limitadas y no tiene control sobre la interfaz de usuario, consulte el documento)

Fluttertoast.showToast(
        msg: "This is a Toast message",
        toastLength: Toast.LENGTH_SHORT,
        gravity: ToastGravity.CENTER,
        timeInSecForIosWeb: 1,
        textColor: Colors.white,
        fontSize: 16.0
    );

ingrese la descripción de la imagen aquí

Raouf Rahiche avatar Jun 08 '2018 09:06 Raouf Rahiche