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"), ) ); }
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
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.
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.
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.
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.
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
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.
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)
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.
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.
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
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.
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.
@@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
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")) ], ); }); }
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"),
)
);
}
Muchas gracias Andrés, estaba perdido
este comentario vale millones
Gracias, me ayudó
Gracias ya me estaba alocando buscando el error en 4 lineas jaja
Gracias!!
Estoy siguiendo el curso, eres al que mejor le ah entendido.
Me alegra saber que te estoy ayudando a entender Flutter. 😊😊
muy bien explicado todo, aprendi pero me revolvi mucho jajaja, batallo aun para aprenderme cada codigo y su funcion
Gracias Buen Video. Lo de Evaluación ternario ayuda bastante.
*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!'),
],
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
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!
Hola Mauro. Justo esta semana empiezo con los videos de BackEnd. Estar pendiente.
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
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.
🤣🤣🤣🤣
🚀 Página Web: www.codigocorrecto.com
⚡ Curso Flutter desde cero: n9.cl/rqlwa
Mejor Hosting: n9.cl/hosting-correcto
➡️ Facebook: n9.cl/pk20c
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.
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
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.
Excelente calidad de video
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
Estupendo. ¿Cuantos videos va ha tener el curso?
No tengo ni idea. 😅 Espero que tenga unos 20 videos, pero siempre hay cosas nuevas que mostrar así que posiblemente tenga muchos más.
noviembre de 2022 ....no me sale el truco de ctrl+punto para poder crear un center por sobre la column, como hago??
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.
No me carga el setState tengo la ultima version tendra q ver en algo?
Gracias por los tutos!
como lo solucionaste?
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á
Hola, oye tu web no funciona que paso?
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)
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
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.
@ Espero poder verlo pronto, tus videos son geniales.
like a todo para ayudar con el algoritmo
me aparece que el state no está definido
No reconoce el setState. Alguien puede resolverlo?
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.
Es que en el minuto 21:10 mete la funcion dentro del Scaffold. entonces ya funciona amigo
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
Esquisites la forma en cómo llevas tus vídeos Bro
Gracias Junior. Es un honor saber que te han gustado mis vídeos. 😁😁👍🏼👍🏼
que hago si el child me marco error?
void _mostrarAlerta(BuildContext context) {
showDialog(
context: context,
child: AlertDialog(
title: Text("Hola"),
content: Text("si ó no?"),
));
}
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.
@ Gracias!!!
no me funcionta el setState()[, Ayuda :,(
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.
@@ricardomendez9152 Entiendo, ¿ Puedes mostrarnos con un ejemplo por favor? Muchas gracias
@@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),
))
],
),
]));
}
}
Claro, aqui use Pagina05 en vez de Pagina 02 como dice el video, y el variable _subscritoNew en vez de _subscrito
@@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
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"))
],
);
},
);
}
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"))
],
);
});
}