Saltar al contenido

Flutter: el teclado desaparece inmediatamente al editar mis campos de texto

Si encuentras alguna parte que te causa duda puedes dejarlo en la sección de comentarios y te ayudaremos lo más rápido posible.

Solución:

Tiene el siguiente código en su función de compilación:

final formKey = GlobalKey();

Este es el problema. Tienes que hacerlo static o mudarse a
initState()

Veo que ha declarado formkey dentro de la función de compilación.
Debe estar fuera de la función de compilación. Echa un vistazo aquí

Voy a publicar mi respuesta aquí, aunque no es exactamente el mismo problema que el OP.

Busqué en Internet por todas partes este problema del teclado que aparecía y desaparecía, y
1. Esta fue la única pregunta SO que encontré que describe el problema de desaparición del teclado, y
2. las otras soluciones disponibles, como la respuesta de @apc y esta respuesta de github, están todas enfocadas en el formKey siendo static y/o un GlobalKeyy definitivamente esa no fue la causa de mi problema (tener keys o recreado keys para mi formulario, y/o sus campos, no tuvo ningún efecto en el problema).

Mi problema específico implicaba un class AuthService with ChangeNotifier con un número de Future métodos.
Después de literalmente días de probar diferentes enfoques, descubrí que el solamente La forma en que podía evitar el problema de que el teclado apareciera y desapareciera instantáneamente en el campo de formulario era tener el AuthService() estar en el nivel superior de mi aplicación, en runApp() :

void main() => runApp(
  ChangeNotifierProvider(
    child: TheWidgetThatIsMyAppAndHasAllBusinessLogicInIt(),
    builder: (BuildContext context) 
      return AuthService();
    ,
  ),
);

(Teniendo la ChangeNotifierProvider en cualquier otro lugar del código, el teclado desaparece)

Luego tuve que ser creativo sobre cómo estructuré mi lógica bajo esto, porque realmente solo me importa AuthService en ciertas partes de mi aplicación, pero soy muy nuevo en Flutter y todo ha sido un buen aprendizaje.

No sé por qué es esto, y me encantaría aprender más, y sé que no he explicado mi situación completa…
pero pasé literalmente días resolviendo esto, necesitaba poner mi respuesta aquí para ayudar a otros.

Si tienes algún titubeo o capacidad de perfeccionar nuestro tutorial te mencionamos dejar una observación y con placer lo leeremos.

¡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 *