Я пишу приложение Flutter (здесь вроде новичок). Вот мой код.
main.dart

import 'package:flutter/material.dart';
import 'package:flutter_app_timer/helpers/constants.dart';

void main() => runApp(ContactApp());

class ContactApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: appTitle,
      theme: new ThemeData(
        primaryColor: appColor,
      ),
    );
  }

}  

constants.dart

import 'package:flutter/material.dart';

Color appColor = Color.fromRGBO(58, 66, 86, 1.0);

const appTitle = "Contact App";  

Когда я запускаю его в эмуляторе, я получаю сообщение об исключении ниже.

I / flutter (7381): ══╡ ИСКЛЮЧЕНИЕ, ЗАХОТЕННОЕ В БИБЛИОТЕКЕ ВИДЖЕТОВ ╞════════════════════════════════════ ═════════════════════════
I / flutter (7381): при построении IconTheme (IconThemeData # 2abdc (color:
I / flutter (7381): Цвет (0xdd000000))):
I / flutter (7381): не удалось найти генератор для маршрута RouteSettings ("/", null) в _WidgetsAppState.

Мне нужно добавить Navigator в main.dart? Как я могу это исправить?

2
Ajay Kulkarni 18 Ноя 2019 в 09:37

2 ответа

Лучший ответ

Вы должны использовать свойство home или initialRoute , чтобы перейти к начальному экрану, который будет отображаться пользователям.

Итак, просто добавьте домашнее свойство, например, внутри вашего MaterialApp

return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: appTitle,
      theme: new ThemeData(
        primaryColor: appColor,
      ),
      home: TestPage ()
    );

Создайте экран или страницу для отображения пользователям, как показано ниже,

class TestPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(child: Text("Hello World!!"),),
    );
  }
}
3
Jay Mungara 18 Ноя 2019 в 06:49

Это сработало для меня:

Navigator.pushAndRemoveUntil(context,
            MaterialPageRoute(builder: (context) => HomePage()), (r) => false);
1
Pedro R. 29 Июл 2020 в 21:17