問題タブ [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 - 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.
されます。タブに新しいページをプッシュしてからタブを切り替えた後。