質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

2回答

2558閲覧

Flutterの画面遷移に関して

murosan

総合スコア9

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2020/07/02 07:00

flutterの学習を始めた初心者なのですが画面遷移の場面でつまづいております。
ボタンを押して次の画面へ遷移するというものなのですがドキュメント通りにしたつもりが遷移できません。

以下main.dartです。

dart

1import 'package:as_if_youtube/booklist.dart'; 2import 'package:as_if_youtube/test.dart'; 3import 'package:flutter/material.dart'; 4 5void main() { 6 runApp(MyApp()); 7} 8 9class MyApp extends StatelessWidget { 10 11 Widget build(BuildContext context) { 12 return MaterialApp( 13 home: Scaffold( 14 appBar: AppBar( 15 title: Text("pretend Yourtube", 16 style: TextStyle( 17 fontSize: 18, 18 ), 19 ), 20 actions: <Widget>[ 21 FlatButton( 22 child: Icon(Icons.search), 23 ), 24 FlatButton( 25 child: Icon(Icons.favorite), 26 ), 27 ], 28 ), 29 body: Center( 30 child: RaisedButton( 31 child: Text( 32 "今日のやることを!", 33 ), 34 color: Colors.orange, 35 textColor: Colors.white, 36 onPressed: () { 37 Navigator.push( 38 context, 39 MaterialPageRoute(builder: (context) => test()), 40 41 ); 42 }, 43 ) 44 45 ), 46 47 // This trailing comma makes auto-formatting nicer for build methods. 48 ), 49 ); 50 } 51}

こちらがtest.dartです。

dart

1import 'package:flutter/material.dart'; 2 3void main() => runApp(test()); 4 5class test extends StatelessWidget { 6 // This widget is the root of your application. 7 8 Widget build(BuildContext context) { 9 return MaterialApp( 10 title: 'Flutter Demo', 11 theme: ThemeData( 12 primarySwatch: Colors.blue, 13 ), 14 home: MyHomePage(title: 'Flutter Demo Home Page'), 15 ); 16 } 17} 18 19class MyHomePage extends StatefulWidget { 20 MyHomePage({Key key, this.title}) : super(key: key); 21 22 final String title; 23 24 25 _MyHomePageState createState() => _MyHomePageState(); 26} 27 28class _MyHomePageState extends State<MyHomePage> { 29 int _counter = 0; 30 31 void _incrementCounter() { 32 setState(() { 33 _counter++; 34 }); 35 } 36 37 38 Widget build(BuildContext context) { 39 return Scaffold( 40 appBar: AppBar( 41 title: Text(widget.title), 42 ), 43 body: Center( 44 child: Column( 45 mainAxisAlignment: MainAxisAlignment.center, 46 children: <Widget>[ 47 Text( 48 'You have pushed the button this many times:', 49 ), 50 Text( 51 '$_counter', 52 style: Theme.of(context).textTheme.display1, 53 ), 54 ], 55 ), 56 ), 57 floatingActionButton: FloatingActionButton( 58 onPressed: _incrementCounter, 59 tooltip: 'Increment', 60 child: Icon(Icons.add), 61 ), // This trailing comma makes auto-formatting nicer for build methods. 62 ); 63 } 64} 65

main.dart内のボタンを押すとtest.dartに遷移するようなシステムを考えております。

申し訳ございませんがどなたかご回答いただけないでしょうか。
何卒よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

質問のコードを試してみましたが、以下のエラーが出ていませんか?
まずはエラーが発生していないか確認するようにしてみてください。
Navigator operation requested with a context that does not include a Navigator.

そしてこのエラーメッセージを teratail で検索すると、以下の質問が該当します。
https://teratail.com/questions/265504
私が回答していますが、同じ原因です。

投稿2020/07/03 02:18

satokei

総合スコア1204

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

murosan

2020/07/04 16:25

ご回答いただきありがとうございます。 いただいたエラーに関してなのですが私のandroid studioでは発生してないですね。。。 https://webbibouroku.com/Blog/Article/flutter-nav こちらを参考にしてルーティング情報を記述した場合遷移することが可能になりました!
guest

0

onPressedの箇所を以下のように書き換えることで繊維可能です。が、
routingを使った方法をおすすめします。
参考記事
https://flutter.ctrnost.com/basic/routing/https://flutter.ctrnost.com/basic/routing/

Dart

1onPressed: () => Navigator.of(context).push(MaterialPageRoute(builder: (context) { 2 return test(); 3})

投稿2020/07/02 12:21

Tetsukick

総合スコア297

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tetsukick

2020/07/06 09:33

お力になれて、良かったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問