Flutterでタブから画面遷移をしたい
Flutterで上部に2つのタブを作成しました。
そのうちの左のページのボタンを押して、画面遷移をさせたいと考えております。
しかし、結果は上手くいかず、以下のようなエラーが表示されました。
Fluter
1// 表示されたエラー 2Navigator operation requested with a context that does not include a Navigator.
Fluter
1コードimport 'package:flutter/material.dart'; 2 3// 最初に呼び出される関数(MyApp関数) 4void main() { 5 runApp(TabBarDemo()); 6} 7 8class TabBarDemo extends StatelessWidget { 9 @override 10 // StatelessWidget を継承する場合は build する 11 Widget build(BuildContext context) { 12 return MaterialApp( 13 title: 'Flutter Demo', 14 theme: ThemeData( 15 primarySwatch: Colors.blue, 16 ), 17 18 // home は最初に表示するページ 19 // DefaultTabController を利用すると、自分で TabController を管理する必要がないので簡単にタブを作成できる 20 home: DefaultTabController( 21 length: 2, 22 // Scaffold を使うことで、 appBar を利用できる 23 child: Scaffold( 24 appBar: AppBar( 25 // appBar の bottomの部分 に作成 26 bottom: TabBar( 27 28 // 上のタブ 29 tabs: [ 30 Tab(text: ('Hello')), 31 Tab(icon: Icon(Icons.directions_run)), 32 ], 33 ), 34 title: Text('Tabs Demo'), 35 ), 36 body: TabBarView( 37 38 // タブの画面 39 children: [ 40 // 1ページ目 41 Center( 42 child: Column( 43 mainAxisAlignment: MainAxisAlignment.center, 44 children: <Widget>[ 45 Text('このボタンを押して、画面遷移したい'), 46 RaisedButton( 47 child: Text('新しいページへ'), 48 color: Colors.orange, 49 textColor: Colors.white, 50 onPressed: () { 51 Navigator.push( 52 context, 53 MaterialPageRoute(builder: (context) => NewPage()), 54 ); 55 }, 56 ), 57 ], 58 ), 59 ), 60 61 // 2ページ目 62 Icon(Icons.directions_run), 63 ], 64 ), 65 ), 66 ), 67 ); 68 } 69} 70 71// 左のタブのボタンから遷移するページ 72class NewPage extends StatelessWidget { 73 @override 74 Widget build(BuildContext context) { 75 return Scaffold( 76 appBar: AppBar( 77 title: Text("新しいページ"), 78 ), 79 body: Center( 80 child: RaisedButton( 81 onPressed: () { 82 Navigator.pop(context); 83 }, 84 child: Text('戻る'), 85 ), 86 ), 87 ); 88 } 89}
試したこと
公式サイトを参考にページ遷移を実装した.
エラーを確認し、ネットで調べた.
最後に
ご教示いただけたら幸いです。
どうぞよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/28 02:51