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

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

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

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

Q&A

解決済

1回答

1378閲覧

Flutter、個別のページごとにテーマを設定したい。

Inete6Q

総合スコア18

Flutter

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

0グッド

0クリップ

投稿2020/10/02 03:44

前提・実現したいこと

個別のページごとにテーマを設定したい。

現在、Flutter学習中で、最初の画面からボタンを押して、遷移した後のページを作っています。
この最初のページでMaterialAppをつかってtheme: themeData()で共通のテーマを作っています。
遷移後以降のページでのみ違うテーマを使いたく、遷移後のページでもう一度MaterialAppを使い、画面遷移を行うと、ボタンを押した後の遷移後、黒い画面を返してしまいます。

これは下記と同じようなエラーだと思っています。
黒い画面を返すFlutter Navigator.pop(context)

(MaterialAppのウィジェット内で、再度MaterialAppを使用した場合も、ウィジェットツリーに2つのナビゲータができてしまうので、そういう使い方はできないというのが現在の認識です。)

MaterialAppは入れ子のように使えないという認識で合っているのでしょうか??

また、入れ子で使えない場合、個別でページのテーマを設定する方法とかはあるのでしょうか??

今回コードが長かったため、省略しました。必要でしたら全コード貼り付けします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ThemeWidget を使ってみてはどうでしょうか。

https://api.flutter.dev/flutter/material/Theme-class.html

投稿2020/10/02 04:05

satokei

総合スコア1217

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

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

Inete6Q

2020/10/02 06:52

ありがとうございます!画面遷移後の画面でもテーマを設定できました。 やりたかったことができたので、わからなくてもいいことなんですが、MaterialAppウィジェット内ではMaterialAppウィジェットは使えないという仕様で間違いないんでしょうか??
satokei

2020/10/02 09:51

使えない仕様というよりは、MaterialApp自体にいろいろ機能が含まれているので、 入れ子にすると面倒なことになるかもという認識です。 Navigatorをネストすることもありますが、その場合MaterialAppを使わず、 素直に単機能のNavigatorを使えばいいだけです。
Inete6Q

2020/10/03 09:49

わかりました! どういった機能を使うときにNavigatorをネストするのかなど、まだイメージがわかないのですが、調べてみようと思います。 ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問