問題タブ [android-architecture-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.
android - onSaveInstanceState 後の Androidx ナビゲーション IllegalStateException
AndroidX のナビゲーション ライブラリを使用するアプリを持っていますが、奇妙な動作をしています。特に、バックグラウンドに出入りするアプリの周り。以下に 2 つの例を示します。
- 私が持っているフラグメントの単純なオンクリックリスナーでは:
(コトリン)
IllegalStateException
このことから、 が後に実行されたので、 がスローされたというクラッシュが見られonSaveInstanceState
ます。
- 私は
ViewModel
自分に関連付けられてFragment
おり、オブザーバーをフラグメントビューのライフサイクルに登録しています。これは、 の間に通知を受け取ることを意味しonStart
ます。ログイン状態などの一部の重要なイベントによって、アプリのナビゲーションが決定されます。私の場合、ログイン画面またはメイン画面に移動できるスプラッシュ画面があります。ユーザーがログインを完了すると、ナビゲーションをリセットします (スプラッシュ画面に戻ります)。これで認証状態の準備が整い、メインフラグメントに移動したいのですが、準備ができonResume
ていると見なされる前に呼び出す必要があるため、これは頻繁にエラーをスローしますFragmentManager
。トランザクションの途中で、新しいトランザクションを追加できないというエラーが表示されます。これを仲介するために、私はこの奇妙なコードを書かなければなりませんでした:
(コトリン)
これらの回避策を追加しなくても、ナビゲーションコントローラーをフラグメントのライフサイクルでうまく機能させる方法を知っている人はいますか?
android - ナビゲーション コンポーネント用の複数のコンテナ
2 つ (またはそれ以上) のコンテナー間でナビゲーション グラフを共有することは可能ですか? 私が達成したいのは、2 つのコンテナー (NavHosts) を持つことです。
- 下部のナビゲーションの上とツールバーの下にある小さい方の 1 つ
- 2番目はフルスクリーンです。
1 つのコンテナのフラグメントが他のコンテナのアクションをトリガーできるため、1 つのナビゲーション グラフが必要です。そうしないと (相互に作用するナビゲーション グラフが増えると) 乱雑になり、ライブラリによって作成される問題が利点を超えてしまいます。