答えて
あなたのウィジェットにはsetState()メソッドが必要です。このメソッドが呼び出されるたびに、ウィジェットは再描画されます。
あなたは子供が読むことができるデータを持っていますが、明示的にすべてのあなたの子供のコンストラクタの引数にデータを渡したくないユースケースのこのタイプは、通常のために呼び出しますInheritedWidget
。 Flutterは、どのウィジェットがデータに依存しているかを自動的に追跡し、変更されたツリーの部分を再構築します。ロケールの変更を処理するように設計されたLocaleQuery
ウィジェットがあり、その使用方法をStocks example appで確認できます。
- をロケールの変更を処理するために(この場合は、
StocksApp
)ルートウィジェットにコールバックを置く:簡単に言うが、ここで何をしているか株式のです。このコールバックは、いくつかの作業を行い、その後、
LocaleQuery.of(context)
を使用するロケール情報を必要MaterialApp
コンストラクタ - 子ウィジェットに
onLocaleChanged
引数としてこのコールバックを登録しますLocaleQueryData
- のカスタマイズされたインスタンスを返します。
- ロケールが変更されると、Flutterはロケールデータに依存するウィジェットのみを再描画します。
ロケールの変更以外のものをトラッキングする場合は、InheritedWidget
に拡張された独自のクラスを作成し、アプリのルート付近の階層に含めます。その親はStatefulWidget
で、子にアクセス可能な鍵はGlobalKey
に設定する必要があります。 StatefulWidget
のState
は、配布するデータを所有し、setState
という名前の変更方法を公開する必要があります。子ウィジェットがState
のデータを変更したい場合は、グローバルキーを使用してState
(key.currentState
)へのポインタを取得し、そのメソッドを呼び出します。データを読みたい場合は、サブクラスInheritedWidget
の静的of(context)
メソッドを呼び出すことができ、State
がsetState
を呼び出すたびにこれらのウィジェットを再構築する必要があることをFlutterに通知します。
うわー、私は3回読んだ後、フラッターギャラリーの神社のサンプルコードを3回見てもまだ曖昧な理解しか持たなかった。これを試してみてください。 – hackingspirit
この例はまだ在庫例にありますか? –
あなたの使用例では、ナビゲータを使用してページをリロードすると効果があります。私は私のアプリで "リアル"と "デモ"モードを切り替えるときにこれを行います。ここでは例を示します。
Navigator.of(context).push(
new MaterialPageRoute(
builder: (BuildContext context){
return new SplashPage();
}
)
);
あなたはどんなメインウィジェット(または画面)あなたはリロードしたいと上記のコードでは、「()新しいSplashPage」を置き換えることができます。このコードは、UIのほとんどの場所にあるBuildContextにアクセスできる場所から呼び出すことができます。
- 1. ウィジェットを強制的に再描画する方法
- 2. すべてのタイルを描画するグリッドを強制的に
- 3. img要素の強制再描画
- 4. リストビューの再描画を強制するには?
- 5. Activity.onConfigurationChangedでビューの再描画を強制する方法
- 6. JavaFX 2.2:ListViewの再描画/更新を強制する方法
- 7. WPFコントロールの再描画を強制する
- 8. 強制的にリッチテキストボックスにフォアグラウンドのみを再描画する
- 9. イベントハンドラ内で強制的にコントロールコンテンツを再描画する方法
- 10. ビューを強制的に再描画する
- 11. カスタムWPFコントロールのカスタム描画UIElementの再描画を強制します
- 12. wxPython Canvasで強制的に再描画する
- 13. Ext GWT(GXT)で再描画/再レイアウトを強制するには? GXTで
- 14. フラッシュバグ - 強制的に画面の再描画
- 15. Firefoxでビデオ要素を強制的に再描画するにはどうすればよいですか?
- 16. vb6コントロールを強制的に再描画する方法はありますか?
- 17. 画面のDCC++に描画した後に強制描画する
- 18. Google Maps API v3.0で強制的に再描画するにはどうすればよいですか?
- 19. Androidウィジェット - アプリケーション強制停止時に再びサービスをバインドする
- 20. Core Graphicsを使用してウィンドウを強制的に再描画しますか?
- 21. 剣道-ui-angular2グリッド:グリッドを強制的に再描画する方法は?
- 22. UIScrollView CATiledLayer chaning後にズームを強制的に再描画するコンテンツ
- 23. ウィジェットの属性の一部を変更した後、ウィジェットを強制的に再描画する方法はありますか?
- 24. スウィングラベルを描くようにJavaを強制するには?
- 25. ロケールをウィジェットに強制する方法
- 26. IE7でフラッシュコンテンツの強制的な再描画
- 27. MPMoviePlayerControllerをランドスケープで再生するように強制する
- 28. ターゲットを再構築するように強制する
- 29. Perl Curses :: UIウインドウがすべてのウィジェットを描画しない
- 30. OpenGLでQtのウィジェットを描画する
トップレベルウィジェット(ルート)の状態を置き換えるべきだと言っていますか?そのウィジェットにアクセスできない場合はどうすればいいですか? Flutterに本質的に再起動するよう伝えたい。 – DogeLion
アプリ全体をリロードしますか? –
私は、アプリケーションを強制的に(ビュースタックの深いビューを含む)再描画するようにしたい(タイトルが示すように)。そして私はこれをトリガーする場所から、ルートウィジェットにアクセスすることはできません。 – DogeLion