≫ APRENDE Flutter #7 - AlertDialog ✅【aplicaciones móviles desde cero】

Поділитися
Вставка
  • Опубліковано 17 гру 2024

КОМЕНТАРІ •

  • @andresfeliperamirezvelez4812
    @andresfeliperamirezvelez4812 3 роки тому +88

    hola, para los que tuvieron problemas con el showDialog, actualmente child no es un parámetro y es necesario contruirlo por medio de builder. Acá les dejo mi ejemplo:
    void _showAlert(BuildContext context){
    showDialog(
    context: context,
    builder:(_) => new AlertDialog(
    title: Text("Esta es una alerta"),
    content: Text("Contenido de la alerta"),
    )
    );
    }

    • @panchitovlogs
      @panchitovlogs 3 роки тому

      Muchas gracias Andrés, estaba perdido

    • @miguelolvera3546
      @miguelolvera3546 3 роки тому

      este comentario vale millones

    • @gnen7680
      @gnen7680 3 роки тому

      Gracias, me ayudó

    • @eljhandry7162
      @eljhandry7162 3 роки тому

      Gracias ya me estaba alocando buscando el error en 4 lineas jaja

    • @rodnalcy6875
      @rodnalcy6875 2 роки тому

      Gracias!!

  • @is28cas07
    @is28cas07 4 роки тому +3

    Estoy siguiendo el curso, eres al que mejor le ah entendido.

    •  4 роки тому +1

      Me alegra saber que te estoy ayudando a entender Flutter. 😊😊

  • @alexisas4649
    @alexisas4649 9 місяців тому +1

    muy bien explicado todo, aprendi pero me revolvi mucho jajaja, batallo aun para aprenderme cada codigo y su funcion

  • @LeonardoSanArica
    @LeonardoSanArica Рік тому

    Gracias Buen Video. Lo de Evaluación ternario ayuda bastante.

  • @sayavedra_sh4075
    @sayavedra_sh4075 2 роки тому +8

    *ACTUALIZACION*
    NO usar RaisedButton, mas bien => ElevatedButon
    Un ejemplo de como dejarlo igual
    children: [
    ElevatedButton(
    autofocus: true,
    style: ElevatedButton.styleFrom(
    primary: const Color.fromARGB(255, 207, 0, 17),
    textStyle: const TextStyle(color: Colors.white, fontSize: 17),
    ),
    onPressed: () {
    mostrarAlerta(context);
    },
    child: const Text('Alert dialog'),
    ),
    const SizedBox(height: 20),
    const Text('Hello, world!'),
    ],

  • @vianeyvargas7736
    @vianeyvargas7736 4 роки тому +3

    Excelente vídeo, muchas gracias te sigo, y por favor sigue subiendo por favor códigos en Flutter, esperamos un vídeo de consumir un API REST app login o formulario basico

  • @maurohernandez4458
    @maurohernandez4458 4 роки тому +5

    Buen video bro, espero con ansias llegar al punto de poder conectar el app con una base de datos o darle mas orientacion backend
    Muchas gracias por los videos:3!

    •  4 роки тому +2

      Hola Mauro. Justo esta semana empiezo con los videos de BackEnd. Estar pendiente.

  • @abrahamafloreszavala15
    @abrahamafloreszavala15 4 роки тому +7

    Explicas muy bien eh. ¿Eres prof. o algo así? Tu sencillez al momento de explicar me hace entender mejor que el prof. que tengo...xd saludos

    •  4 роки тому +4

      Jajaja. No, no soy profesor. Pero me gusta entender bien los conceptos y a la hora de explicar trato de usar ejemplos sencillos. Muchas gracias por tus palabras y espero que mis videos te sigan ayudando.

    • @mercadeo9999
      @mercadeo9999 Рік тому +1

      🤣🤣🤣🤣

  •  4 роки тому +1

    🚀 Página Web: www.codigocorrecto.com
    ⚡ Curso Flutter desde cero: n9.cl/rqlwa
    Mejor Hosting: n9.cl/hosting-correcto
    ➡️ Facebook: n9.cl/pk20c

  • @aaronzapata7118
    @aaronzapata7118 Рік тому +1

    Muy buen video, me agradó full. Agrego algo, para los que tuvieron un error y el setState aparece como no creado o que falta crear el método es por el hecho de tener la función _mostrarAlerta fuera de la clase principal, para solucionar toca hacer tal cual en el video que le pega antes de cerrar la última llave.

  • @luisrobertonavarro7581
    @luisrobertonavarro7581 3 роки тому +2

    Excelente, como siempre. Pero sería bueno que el void del alertdialog estuviese en otro archivo .dart que reciba los parámetros de texto, y retorne lo seleccionado por el usuario, poenso así sería mas óptimo, porque podría ser llamado desde otras partes del sistema

    •  3 роки тому +3

      Tienes toda la razón Luis. Esa es la forma correcta de usarlo, pero no quise agregar complejidad, para facilitar el entendimiento para lo que vienen comenzando con Flutter.

  • @tecnozex4040
    @tecnozex4040 2 роки тому +1

    Excelente calidad de video

    •  2 роки тому

      Muchas gracias TecnoZex.

  •  Рік тому

    Tus vídeos son buenísimos. ¿Habría alguna forma de llevar los estilos de los widgets a un fichero externo, como en CSS?. La forma en que se aplica en el vídeo es equivalente al modo inline, con los inconvenientes que acarrea.
    Gracias

  • @josemanuelsanchezgil3063
    @josemanuelsanchezgil3063 4 роки тому +2

    Estupendo. ¿Cuantos videos va ha tener el curso?

    •  4 роки тому +1

      No tengo ni idea. 😅 Espero que tenga unos 20 videos, pero siempre hay cosas nuevas que mostrar así que posiblemente tenga muchos más.

  • @cristiansegovia2754
    @cristiansegovia2754 2 роки тому +1

    noviembre de 2022 ....no me sale el truco de ctrl+punto para poder crear un center por sobre la column, como hago??

    •  2 роки тому +1

      Asegurate de tener instalado y actualizado el plugin de flutter. También puede usar algún snippet como Flutter Widget Snippet. También si estás en un Mac se usa Command + . para llamar la función. Por último también es posible que en los atajos de teclado tengas la función ocupada con otra tarea.

  • @kevinlopez9510
    @kevinlopez9510 3 роки тому +5

    No me carga el setState tengo la ultima version tendra q ver en algo?
    Gracias por los tutos!

    • @Miguel-Garcia15
      @Miguel-Garcia15 3 роки тому

      como lo solucionaste?

    • @aaronzapata7118
      @aaronzapata7118 Рік тому

      el error se debe al tener el _mostrarAlerta fuera de la clase principal, ingresale dentro de la función principal como hace en el video y funcionará

  • @WebDeveloperUrianViera
    @WebDeveloperUrianViera 11 місяців тому

    Hola, oye tu web no funciona que paso?

  • @anonymushadow282
    @anonymushadow282 2 роки тому

    Pregunta, xque si pone 0x en vez de #??? Osea.... acá en flutter y En android studio se usa 0x y en css se usa #, xque esa diferencia???(hablando de hexadecimales)

  • @dimasb00
    @dimasb00 Рік тому +1

    No entendi nunca por que el onPresed del TextButton me daba error (sin importar de como lo colocara).
    logre que corriera pero al final no se que era lo que daba ese error

    •  Рік тому +1

      Un vídeo que debo actualizar definitivamente. Con las nuevas propiedades de Flutter hay cositas que deben hacerse diferentes, especialmente relacionado con declaracion de constantes y las null safety.

    • @brandbvth
      @brandbvth Рік тому

      @ Espero poder verlo pronto, tus videos son geniales.

  • @audiomotivaciones8675
    @audiomotivaciones8675 3 роки тому +2

    like a todo para ayudar con el algoritmo

  • @andresdavidpaezmanjarres4739
    @andresdavidpaezmanjarres4739 3 роки тому

    me aparece que el state no está definido

  • @dgrippo
    @dgrippo 3 роки тому +1

    No reconoce el setState. Alguien puede resolverlo?

    • @dgrippo
      @dgrippo 3 роки тому +1

      Creo que el problema está en que la clase extiende una State. Inicias el video explicando el contenido de la aplicación, cosa que está bien porque el objetivo es mostrar el AlertDialog, pero pasas por alto el hecho que al usar el método setState este no es parte de un Stateless por eso en mi caso no aparece ya que yo continué la app del capítulo anterior donde sí se extendía un Statelesswidget.

    • @ethanjedutunporrasalba4773
      @ethanjedutunporrasalba4773 2 роки тому +1

      Es que en el minuto 21:10 mete la funcion dentro del Scaffold. entonces ya funciona amigo

  • @magdielworkout6392
    @magdielworkout6392 3 роки тому

    todo genial man pero pasas de hacer las cosas separadas a juntar todo y luego nada funciona porque lo tratamos de hacer por separado y no funciona de esta manera

  • @juniorcr47
    @juniorcr47 4 роки тому +2

    Esquisites la forma en cómo llevas tus vídeos Bro

    •  4 роки тому +1

      Gracias Junior. Es un honor saber que te han gustado mis vídeos. 😁😁👍🏼👍🏼

  • @yorlenisarroyo4508
    @yorlenisarroyo4508 3 роки тому +1

    que hago si el child me marco error?
    void _mostrarAlerta(BuildContext context) {
    showDialog(
    context: context,
    child: AlertDialog(
    title: Text("Hola"),
    content: Text("si ó no?"),
    ));
    }

    •  3 роки тому +2

      No se usa un child, debes usar el builder, así:
      showDialog(
      context: context,
      builder: (context) => AlertDialog(
      title: Text("Wifi"),
      content: Text("Wifi not detected. Please activate it."),
      )
      );
      Espero te sirva.

    • @yorlenisarroyo4508
      @yorlenisarroyo4508 3 роки тому

      @ Gracias!!!

  • @nellysjoaquinconcepcion3146
    @nellysjoaquinconcepcion3146 3 роки тому +1

    no me funcionta el setState()[, Ayuda :,(

    • @ricardomendez9152
      @ricardomendez9152 3 роки тому +2

      1. No tienes definido el StatefulWidget
      2. Estas usando alguna funcion fuera del StateFulWidget por eso no funciona.
      Solucion:
      Debes crear dentro de la clase que herada de StateFulWidget una funcion que ejecute el setState() y luego pasar como parametro dicha funcion creada al metodo/funcion que ejecute el onPressed() para realizar el cambio.
      Todo esto lo hice porque estoy usando metodos/funciones para separar el codigo y no tenerlo todo en un solo lado aglomerado y poco legible.
      Suena un poco loco pero eso implemente para poder solucionarlo. Saludos.

    • @analysico
      @analysico 3 роки тому +1

      @@ricardomendez9152 Entiendo, ¿ Puedes mostrarnos con un ejemplo por favor? Muchas gracias

    • @charlyvasquez
      @charlyvasquez 3 роки тому +1

      @@analysico import 'package:flutter/material.dart';
      class Pagina05 extends StatefulWidget {
      const Pagina05({Key? key}) : super(key: key);
      @override
      _Pagina05State createState() => _Pagina05State();
      }
      class _Pagina05State extends State {
      bool _subscritoNew = false;
      @override
      Widget build(BuildContext context) {
      return Scaffold(
      appBar: AppBar(
      title: const Text("Página 05"),
      ),
      body: Container(
      color: Colors.brown,
      child: Center(
      child: Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
      volver(context),
      /*ElevatedButton(
      style: ElevatedButton.styleFrom(
      primary: Colors.yellow,
      onPrimary: Colors.black,
      padding: const EdgeInsets.symmetric(
      horizontal: 30, vertical: 10)),
      onPressed: () {
      _mostrarSubscribirseNew(context);
      //Navigator.pop(context);
      },
      child:
      Text(_subscritoNew ? "Darse de Baja" : "Subscribirse")),*/
      subscribirseWidgetNew(context),
      const SizedBox(
      height: 15.0,
      ),
      Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
      const Text(
      "Estado de Subscripción:",
      style: TextStyle(
      color: Colors.white, fontWeight: FontWeight.bold),
      ),
      const SizedBox(
      width: 10.0,
      ),
      Text(
      _subscritoNew ? "Subscrito" : "No Subscrito",
      style: const TextStyle(color: Colors.white),
      ),
      ],
      )
      ],
      ))),
      );
      }
      Widget subscribirseWidgetNew(context) {
      return ElevatedButton(
      style: ElevatedButton.styleFrom(
      primary: Colors.yellow,
      onPrimary: Colors.black,
      padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 10)),
      onPressed: () {
      _mostrarSubscribirseNew(context);
      //Navigator.pop(context);
      },
      child: Text(_subscritoNew ? "Darse de Baja" : "Subscribirse"));
      }
      void _mostrarSubscribirseNew(context) {
      showDialog(
      //barrierColor: const Color(0xFFCABBBB),
      barrierDismissible: false,
      context: context,
      builder: (_) => AlertDialog(
      backgroundColor:
      _subscritoNew ? const Color(0xFFC52201) : Colors.green,
      titleTextStyle: const TextStyle(color: Color(0xFFFFFFFF)),
      contentTextStyle: const TextStyle(color: Color(0xFFFFFFFF)),
      title: Text(
      _subscritoNew ? "Darse de Baja" : "Subscribirse",
      textAlign: TextAlign.center,
      ),
      content: Text(
      _subscritoNew
      ? "Desea darse de Baja?"
      : "Desea Subscribirse?",
      textAlign: TextAlign.center,
      ),
      actions: [
      Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
      TextButton(
      onPressed: () {
      Navigator.pop(context);
      },
      child: const Text(
      "Cancelar",
      style: TextStyle(
      color: Colors.white,
      backgroundColor: Colors.black),
      )),
      TextButton(
      onPressed: () {
      setState(() {
      _subscritoNew = !_subscritoNew;
      });
      Navigator.pop(context);
      },
      child: const Text(
      "Aceptar",
      style: TextStyle(
      color: Colors.white,
      backgroundColor: Colors.black),
      ))
      ],
      ),
      ]));
      }
      }

    • @charlyvasquez
      @charlyvasquez 3 роки тому

      Claro, aqui use Pagina05 en vez de Pagina 02 como dice el video, y el variable _subscritoNew en vez de _subscrito

    • @miguelvelasco3223
      @miguelvelasco3223 2 роки тому +1

      @@ricardomendez9152 gracias me funciono... por si alguien no entiendio debe colocar todo dentro de la funcion si tienes la funcion void fuera no exportas los widget

  • @kevinvillegasperez6959
    @kevinvillegasperez6959 Рік тому

    Así seria actualmente:
    void mostrarAlerta(BuildContext context, bool estasEnojado) {
    showDialog(
    barrierDismissible: false,
    context: context,
    builder: (BuildContext context) {
    return AlertDialog(
    title: const Text("Mostrar Alerta"),
    content: const Text("¿Qué haces?"),
    actions: [
    TextButton(
    onPressed: () => {Navigator.pop(context)},
    child: Text(estasEnojado ? "Porque Estas enojado?" : "NO")),
    TextButton(
    onPressed: () => {Navigator.pop(context)},
    child: const Text("Si"))
    ],
    );
    },
    );
    }

  • @patricioblancotolentino5839
    @patricioblancotolentino5839 4 місяці тому

    Para los que tuvieron problemas con el RaisedButton yo estoy utilizando ElevatedBuutton y la función es similar:
    void _mostrarAlert(BuildContext context) {
    showDialog(
    context: context,
    builder: (_alertdialog) {
    return AlertDialog(
    title: const Text("Titulo Dialog"),
    content: const Text("Contenido del alertDialog"),
    actions: [
    TextButton(
    onPressed: Navigator.of(context).pop, child: const Text("Ok"))
    ],
    );
    });
    }