Saltar al contenido

Cómo ocultar el cajón en flutter después de cambiar el valor de Scaffold.body

Si encuentras algún problema con tu código o proyecto, recuerda probar siempre en un ambiente de testing antes subir el código al proyecto final.

Solución:

¿Estás usando exactamente Navigator.of(context).pop()? No puedo reproducir tu problema, ¿puedes publicar un ejemplo mínimo para reproducirlo?

El siguiente código funciona como se esperaba: el botón de configuración abre el cajón, mientras que el otro no.

class MyHomePage extends StatefulWidget 
  MyHomePage(Key key, this.title) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => new _MyHomePageState();


class _MyHomePageState extends State 
  String text = "Initial Text";

  @override
  Widget build(BuildContext context) 
    return new Scaffold(
        drawer: new Drawer(
          child: new ListView(
            children: [
              new Container(child: new DrawerHeader(child: new Container())),
              new Container (
                child: new Column(
                    children: [
                      new ListTile(leading: new Icon(Icons.info),
                          onTap:()
                            setState(()
                              text = "info pressed";
                            );
                          
                      ),
                      new ListTile(leading: new Icon(Icons.save),
                          onTap:()
                            setState(()
                              text = "save pressed";
                            );
                          
                      ),
                      new ListTile(leading: new Icon(Icons.settings),
                          onTap:()
                            setState(()
                              text = "settings pressed";
                            );
                            Navigator.of(context).pop();
                          
                      ),

                    ]
                ),
              )
            ],
          ),
        ),
        appBar: new AppBar(title: new Text("Test Page"),),
        body: new Center(child: new Text((text)),
        ));
  

crear scaffoldKey

cerrar cajón

 _scaffoldKey.currentState.openEndDrawer(),

cajón abierto

scaffoldKey.currentState.openDrawer(),

Ejemplo

     InkWell(
        onTap: ()=> widget.scaffoldKey.currentState.openDrawer(),
        child: Icon(
          Icons.menu,
          size: 38,
          color: Color(0xFFFFFFFF),
        ),
      ), 

Nos encantaría que puedieras dar recomendación a este enunciado si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *