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 (iOS) – “No se encontraron CupertinoLocalizations”, ¿cómo solucionarlo?

Estoy usando TextField en mi aplicación de flutter. Funcionó en Android, pero en iOS, cuando intento pegar desde el portapapeles en el campo, obtengo el error:

No se encontró CupertinoLocalizations. Los widgets _CupertinoTextSelectionControlsToolbar requieren que se proporcione CupertinoLocalizations mediante un ancestro de widget Localizations. La biblioteca Cupertino utiliza Localizations para generar mensajes, etiquetas y abreviaturas. Para introducir un CupertinoLocalizations, use CupertinoApp en la raíz de su aplicación para incluirlos automáticamente.

El widget específico que no pudo encontrar un ancestro de CupertinoLocalizations fue: _CupertinoTextSelectionControlsToolbar

View post on imgur.com

Esta es parte de mi código, página principal:

return Localizations(locale: Locale(‘en’),
delegates: [
GlobalMaterialLocalizations.delegate,
DefaultCupertinoLocalizations.delegate,
DefaultWidgetsLocalizations.delegate,
],
child: CupertinoTabScaffold(
tabBar: CupertinoTabBar(…),

)
);

En cada pestaña uso esta página:

return MaterialApp(
navigatorKey: navKey,
home: child,
);

Tengo navegación separada en cada pestaña.

¿Cómo lo arreglo? ¿Alguna idea? Estaré agradecido.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con la falta de CupertinoLocalizations en tu aplicación Flutter al ejecutarla en iOS. Para solucionarlo, puedes probar una de las siguientes opciones:

    1. Envuelve tu widget de MaterialApp con un widget de CupertinoApp en tu página principal:
    return CupertinoApp(
      localizationsDelegates: [
        DefaultCupertinoLocalizations.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      home: CupertinoTabScaffold(
        tabBar: CupertinoTabBar(...),
        ...
      ),
    );
    
    1. Alternativamente, puedes envolver tu widget de TextField con un widget de CupertinoTextField, que es una implementación de Cupertino de un campo de texto:
    CupertinoTextField(
      controller: myController,
      ...
    )
    

    Al hacerlo, tu aplicación incluirá correctamente las CupertinoLocalizations necesarias para dispositivos iOS. ¡Espero que esto ayude!

Comments are closed.