Задать вопрос
@1becous

Как решить ошибку type 'Null' is not subtype of type 'Map' in type cast?

Создал буквально новый проект без ничего, решил немного проексперементировать и научиться локализировать приложение. Открыл гайд на ютубе который обьясняет как это сделать через библиотеку easy_localization. Делаю все по инструкции, но вот такие пироги выскакивают.

642480c1408e1708969852.pngjn54buppd

import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:studenttodo/generated/codegen_loader.g.dart';
import 'package:studenttodo/generated/locale_keys.g.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await EasyLocalization.ensureInitialized();
  runApp(EasyLocalization(
      supportedLocales: [Locale('en', "US"), Locale('uk', "UA")],
      assetLoader: CodegenLoader(),
      path:
          'assets/translations', // <-- change the path of the translation files
      fallbackLocale: Locale('en', "US"),
      child: MyApp()));
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: context.localizationDelegates,
      supportedLocales: context.supportedLocales,
      locale: context.locale,
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(LocaleKeys.app_bar_title_main.tr()),
        leading: IconButton(
            onPressed: () {
              if (context.locale == Locale('en', "US")) {
                context.setLocale(Locale("uK", "UA"));
              } else {
                context.setLocale(Locale('en', "US"));
              }
            },
            icon: Icon(
              Icons.language,
              color: Colors.black,
            )),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              LocaleKeys.you_have_pushed_the_button_this_many_times.tr(),
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ),
    );
  }
}


Вот буквально весь код проекта, добавлено только пару строчек которые должны заставить работать код, но что то не получаеться
BfsG7ZQ
Вот файлы проекта, только мейн файл и сгенерированые файлы библиотекой по инструкции...
  • Вопрос задан
  • 358 просмотров
Подписаться 1 Сложный Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы