問題タブ [flutter-navigation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flutter - Flutter inheritFromWidgetOfExactType() メソッド
2つの画面があるとしましょう。スクリーンワンとスクリーンツー。ScreenOne には、押すと ScreenTwo (Navigator.push) に移動するボタンがあります。ここまでは順調ですね。
また、ScreenTwo には戻るボタンがあり、このボタンの目的は ScreenOne (Navigator.pop) に戻ることです。しかし、このボタンを押すと、次のエラーが表示されます。
未処理の例外: 非アクティブ化されたウィジェットの祖先を検索することは安全ではありません。この時点で、ウィジェットの要素ツリーの状態は安定していません。dispose() メソッドでウィジェットの祖先を安全に参照するには、ウィジェットの didChangeDependencies() メソッドで inheritFromWidgetOfExactType() を呼び出して、祖先への参照を保存します。
この問題を解決するにはどうすればよいですか?
dart - Youtube や Instagram アプリのようなナビゲーション スタックを実装する方法は?
ボトム ナビゲーション バーを使用する Flutter でアプリを作成しようとしています。YouTube や Instagram アプリのように、以前にアクセスした画面をナビゲーション スタックに保持したい。たとえば、3 つの異なる下部ナビゲーション バー (A、B、C) があるとします。タブA、B、Cをそれぞれクリックした後、それぞれC、B、Aに戻りたいです。
これが私の主な目標ですが、実装できるかどうかという副次的な目標があります。
Instagram や Youtube で、A -> B -> C -> B -> C の順にタブをクリックすると (今はタブ C にいます)、その後、戻るボタンをクリックし始めると、C -> B に戻ります。 -> タブ。基本的に、各タブはナビゲーション スタックに 1 回配置できます。同じタブに複数回アクセスすると、同じタブの前の画面がナビゲーション スタックから削除されます。
この問題の解決策を 2 日間探していますが、見つかりませんでした。alibaba 開発者によって作成されたflutter-go アプリもテストしましたが、クリックして戻るボタンのアプリが閉じているだけです。
この問題について何か助けていただければ幸いです。
flutter - MaterialPageRoute をインストールできません処分してから
セットアップ
単純なルートにする必要がFirstRoute
あり、SecondRoute
. それぞれに、ナビゲーション用のボタンが含まれています。のボタンを押すとFirstRoute
秒につながり、その逆も同様です。
例外
FirstRoute
からに2 回目SecondRoute
に移動しようとすると、例外が発生します(最初の試行は成功します)。「破棄した後に MaterialPageRoute をインストールできません」というメッセージから判断すると、どういうわけかルートを破棄しましたが、どのルートとどのようにそれを行ったのかわかりません。
完全なエラー ログは次のとおりです。
誰かがエラーを再現したい場合のコード全体を次に示します。
flutter - 画面をスタックにプッシュせずにルートをナビゲーション スタックに追加する
ナビゲーション スタックにいくつか追加したいroutes
のですが、それらの画面をプッシュしたくありません。flutter
ナビゲーションでスタックを与えることは可能ですか?
たとえば、3 つの画面があります。A
、B
およびC
。
- したがって、直接画面に移動したいのですが
C
、戻るボタンで に移動し、戻るボタンで に移動するC
必要があります。B
B
A
こんなことはしたくない――
C
これらの画面をプッシュせずに、残りの 2 つのルートをスタックにプッシュして保持したいだけです。
dart - ナビゲーターで同じ画面を複数回押す
アプリの起動時に新しい画面を自動的にプッシュする必要があります(ユーザーがログインまたはサインアウトしている場合)。
私はscoped_model
認証に使用しているため、ユーザーの値がモデルで変更されたときにナビゲートする必要があります。
私はここでブライアン・イーガンの提案に従います: https://github.com/brianegan/scoped_model/issues/43#issuecomment-442444143
AuthStatus
ですEnum
。で値を変更しますModel
。
これは正しいプッシュ ルートですが、問題があります。
同じルートが何度もプッシュされます。たとえば、同じログイン ページが 5 回以上プッシュされます。
ナビゲーターが同じ画面を複数回押すのを止めるには?
ありがとう!
flutter - Flutter Navigator がスタックにプッシュされない
Flutter のナビゲーションで奇妙な問題が発生しています。
名前付きルートを使用しています。このため、私はメソッドを提供してNavigator
いonGenerateRoute
ます:
これが私のものonGenerateRoute
です:
ここで、ルートに着陸するアプリケーションを開始し、ROOT
次を使用して「PAGE_1」に移動するとします。
次に、次を使用して MyPage2 に移動します。
これが問題です。
MyPage2
にプッシュされることを期待しているMyPage1
ため、次のウィジェット ツリーが生成されます。
しかし、代わりに、私はこれを取得します:
私は何が欠けていますか?
前もって感謝します!
flutter - Cupertino タブを切り替えるときにナビゲーターをリセットする方法
Flutter でマルチページ アプリをセットアップしようとしています。下部のタブバーには、[その他] ボタンを含む、最もよく使用される 4 つのページが含まれています。詳細ボタンは、他のページへのリンクを含むページを表示します。ページをクリックすると、このページが「その他」ページに置き換わるため、新しいナビゲーション スタックが作成されます。ただし、別のタブに切り替えてから「詳細」タブに戻ると、ナビゲーションの状態が記憶されます。これは、「その他」ページではなく、タブを切り替えたときに残したページが表示されていることを意味します。ユーザーが「その他」タブをクリックするたびに「その他」ページを表示したい。
Navigator の pushReplacement メソッドを使用してみました。そのため、ユーザーが詳細ページをクリックすると、詳細ページのリストに戻ることができません。ただし、タブを切り替えると、more ページが置き換えられるため、表示されなくなりました。
また、タブのコールバック メソッドを調整して、すべてのビューをポップし、ナビゲーターを MoreScreen に戻すことも試みました。ただし、これにより、コンソールにエラーが表示されました: setState() or markNeedsBuild() called during build.
.
タブ画面:
そして、別のページに移動するためのボタンを保持する MoreScreen:
タブを切り替えるたびにナビゲーションスタックがリセットされることを期待していますが、次を使用して手動で行う必要があります。
Navigator.of(context).popUntil((route) => route.isFirst);
これにより、次のエラー メッセージが表示setState() or markNeedsBuild() called during build.
されます。タブに新しいページをプッシュしてからタブを切り替えた後。
flutter - 複数のウィジェットが同じ GlobalKey を使用していました。フラッター
別のウィジェット内の Button を使用して TitledBottomNavigationBar アイテムをタップしたいと思います。
ナビゲーションバーのキーのみを使用していますが、まだ使用していると表示されていますMultiple widgets used the same GlobalKey.
エラーがスローされます: