引き出しと本体のあるシンプルなScaffold
があります。引き出しの中のアイテムを選択して、足場の本体を新しいビューに移動させたいです。
私が見つけたほとんどのアプローチ( このように )は、ステートフルウィジェットを使用し、ドロワーアイテムがタップされたときにその状態を変更するだけです。
ただし、これはアプリのナビゲーションスタックを完全に無視し、押し戻すと期待どおりに前のビューに戻りません。
一方、アイテムがクリックされたときにNavigator.of(context).Push...
を使用すると、ナビゲーションスタックが使用されますが、画面全体が変更されます。これも私が望むものではありません。
スキャフォールドのボディ用に新しいカスタムナビゲーターを作成しようとしましたが、ドロワーからNavigatorState
にアクセスする際に問題が発生しました。
これは私には一般的な問題のように思われ(たとえば、すべてのGoogleアプリはそのように機能します)、これを正しく実装する方法について少し混乱しています。カスタムナビゲーターは正しいアプローチですか?いくつかの例がありますか?
ドロワー専用のウィジェットを作成し、アプリの各画面の足場に含める必要があるようです。このようにして、ナビゲーションスタックを保持するナビゲーターを使用し、決定した画面にのみドロワーを含めることができます。
これは記事です 私が例を見つけたところ。