es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Flutter: modal_bottom_sheet (estilo iOS)

¿Cómo puedo animar el modal “bottom sheet” (https://pub.dev/packages/modal_bottom_sheet) como lo hace después de hacer push con “MaterialWithModalsPageRoute”? Empiezo mi aplicación y quiero mostrar este modal en la primera página al presionar un botón, pero no se anima como debería.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para animar el modal_bottom_sheet de la misma manera que lo hace después de presionar con MaterialWithModalsPageRoute, puedes seguir estos pasos:

    1. Importa el paquete modal_bottom_sheet en tu código.
    import 'package:modal_bottom_sheet/modal_bottom_sheet.dart';
    
    1. Crea un nuevo método que devuelva un Widget que contenga el modal_bottom_sheet.
    Widget _buildBottomSheet(BuildContext context) {
      return Container(
        height: 500.0,
        child: Center(
          child: Text('Hola Mundo'),
        ),
      );
    }
    
    1. Cuando se presione el botón, llama a la función showModalBottomSheet y pasa el método _buildBottomSheet como argumento.
    onPressed: () {
      showModalBottomSheet(
        context: context,
        builder: _buildBottomSheet,
      );
    }
    
    1. Para animar la lámina inferior, debes envolver tu modal_bottom_sheet con el widget Material.
    Widget _buildBottomSheet(BuildContext context) {
      return Material(
        child: Container(
          height: 500.0,
          child: Center(
            child: Text('Hola Mundo'),
          ),
        ),
      );
    }
    
    1. Por último, para lograr la misma animación que MaterialWithModalsPageRoute, debes envolver tu botón también con el widget Material.
    body: Material(
      child: Center(
        child: RaisedButton(
          child: Text('Mostrar Modal'),
          onPressed: () {
            showModalBottomSheet(
              context: context,
              builder: _buildBottomSheet,
            );
          },
        ),
      ),
    ),
    

    Y listo, tu modal_bottom_sheet debería animarse de la misma manera que lo hace después de presionar con MaterialWithModalsPageRoute.

Comments are closed.