前提・実現したいこと
flutter学習で画面遷移を実装しようとしています。
KboyさんのYouTube動画を見て、写経していました。
Navigate with named routesを使おうとしています。
発生している問題・エラーメッセージ
The builder for route "/" returned null. Route builders must never return null. The relevant error-causing widget was: MaterialApp file:///Users/to/AndroidStudioProjects/coriander3/lib/main.dart:12:12 When the exception was thrown, this was the stack: #0 MaterialRouteTransitionMixin.buildPage.<anonymous closure> (package:flutter/src/material/page.dart:107:9) #1 MaterialRouteTransitionMixin.buildPage (package:flutter/src/material/page.dart:113:6) #2 _ModalScopeState.build.<anonymous closure> (package:flutter/src/widgets/routes.dart:826:45) #3 Builder.build (package:flutter/src/widgets/basic.dart:7118:48) #4 StatelessElement.build (package:flutter/src/widgets/framework.dart:4620:28)
該当のソースコード
dart
1 2//以下、main.dart 3import 'package:flutter/material.dart'; 4 5void main() { 6 runApp(MyApp()); 7} 8 9class MyApp extends StatelessWidget { 10 // This widget is the root of your application. 11 12 Widget build(BuildContext context) { 13 return MaterialApp( 14 title: 'Flutter Demo', 15 theme: ThemeData( 16 17 primarySwatch: Colors.blue, 18 19 ), 20 home: MyHomePage(title: 'Flutter Demo Home Page'), 21 ); 22 } 23} 24 25class MyHomePage extends StatefulWidget { 26 MyHomePage({Key key, this.title}) : super(key: key); 27 28 29 30 final String title; 31 32 33 _MyHomePageState createState() => _MyHomePageState(); 34} 35 36class _MyHomePageState extends State<MyHomePage> { 37 int _counter = 0; 38 39 void _incrementCounter() { 40 setState(() { 41 42 _counter++; 43 }); 44 } 45 46 47 Widget build(BuildContext context) { 48 49 return Scaffold( 50 appBar: AppBar( 51 52 title: Text(widget.title), 53 ), 54 body: Center( 55 56 child: RaisedButton( 57 child: Text('次へ'), 58 onPressed: (){ 59 Navigator.pushNamed(context, '/next'); 60 }, 61 ), 62 ), 63 floatingActionButton: FloatingActionButton( 64 onPressed: _incrementCounter, 65 tooltip: 'Increment', 66 child: Icon(Icons.add), 67 ), // This trailing comma makes auto-formatting nicer for build methods. 68 ); 69 } 70} 71 72 73 74//以下、next_page.dart 75import 'package:flutter/material.dart'; 76 77class NextPage extends StatelessWidget { 78 79 Widget build(BuildContext context) { 80 // TODO: implement build 81 return Scaffold( 82 appBar: AppBar( 83 84 title: Text('次の画面'), 85 ), 86 body: Container( 87 height: double.infinity, 88 color: Colors.red, 89 child: Center( 90 child: RaisedButton( 91 child: Text('戻る'), 92 onPressed: () { 93 Navigator.pop(context); 94 }, 95 ), 96 ), 97 ), 98 ); 99 } 100 101}
試したこと
home: MyHomePage(title: 'Flutter Demo Home Page'),
の記述を削除後、initialRoute以下を追加した際にエラーが起きました。
(その前まではエラーなく動きました。)
dart
1//以下を追加 2initialRoute: '/', 3 routes: { 4 5 '/': (context) => MyHomePage(), 6 7 '/next': (context) => NextPage(), 8 },
補足情報(FW/ツールのバージョンなど)
Android studio 4.0.1
Xcode 11.3.1
MacBook Air (13-inch, 2017)
MacOS Catalina 10.15.1
エミュレータ iPhone8(mobile)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/01 15:03
2020/09/02 00:54
2020/09/04 02:17