web-dev-qa-db-ja.com

実際にナビゲートするFlutterNavigation Drawer

引き出しと本体のあるシンプルなScaffoldがあります。引き出しの中のアイテムを選択して、足場の本体を新しいビューに移動させたいです。

私が見つけたほとんどのアプローチ( このように )は、ステートフルウィジェットを使用し、ドロワーアイテムがタップされたときにその状態を変更するだけです。

ただし、これはアプリのナビゲーションスタックを完全に無視し、押し戻すと期待どおりに前のビューに戻りません。

一方、アイテムがクリックされたときにNavigator.of(context).Push...を使用すると、ナビゲーションスタックが使用されますが、画面全体が変更されます。これも私が望むものではありません。

スキャフォールドのボディ用に新しいカスタムナビゲーターを作成しようとしましたが、ドロワーからNavigatorStateにアクセスする際に問題が発生しました。

これは私には一般的な問題のように思われ(たとえば、すべてのGoogleアプリはそのように機能します)、これを正しく実装する方法について少し混乱しています。カスタムナビゲーターは正しいアプローチですか?いくつかの例がありますか?

10
Simiil

ドロワー専用のウィジェットを作成し、アプリの各画面の足場に含める必要があるようです。このようにして、ナビゲーションスタックを保持するナビゲーターを使用し、決定した画面にのみドロワーを含めることができます。

これは記事です 私が例を見つけたところ。

1
Jesús Barrera