問題タブ [android-jetpack-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 - Jetpack ナビゲーションで MainActivity に移動する
MainActivity で SettingsListFragment から移動するにはどうすればよいですか?
私のナビゲーション グラフでは、MainActivity から画面を表示していないためです。1 つのアクティビティにあるナビゲーション全体、コードを確認できます
android - あるビューモデルから別の Android MVVM にデータを渡す
皆さんにデザイン関連の質問があります。
そのため、Google のGuide to App Architectureに従って、Kotlin、MVVM、およびデータ バインディングを使用してアプリケーションを構築しています。Google の規定に従って、Jetpack コンポーネント (ナビゲーション、ライブデータなど) を使用しています。
問題は、開発中にあるフラグメントから別のフラグメントにデータを転送する必要があることが何度もあるということです。以前は、フラグメントのインスタンスを作成し、複雑なデータを追加してから、次のようにフラグメントに移動していました。
目的地間でデータを渡すナビゲーションでは、このようにするか、同じドキュメントにも記載されているShared View Modelを使用する必要があります。>>
一般に、宛先間で最小限のデータのみを渡すことを強く推奨する必要があります。たとえば、オブジェクト自体を渡すのではなく、キーを渡してオブジェクトを取得する必要があります。これは、保存されたすべての状態の合計スペースが Android で制限されているためです。大量のデータを渡す必要がある場合は、フラグメント間でデータを共有するで説明されているように、ViewModel の使用を検討してください。
これは機能します。
問題は、アーキテクチャを使用する主な理由の 1 つが関心の分離であることです。きれいで保守しやすいコードを書くことができるように。この sharedviewmodel の使用は、(私の理解によると)その目的を無効にします。これは、大きな ViewModel クラスにつながるためです。
非常に一般的なシナリオで問題を説明しようとします。
データのリストを含むフラグメントがあります。リスト内の各項目はユーザーに対応しています。アイテムをタップすると、ユーザーの詳細画面に移動し、編集ボタンをタップすると、詳細を編集できる編集画面に移動する必要があります。
したがって、この状況では、ユーザー データをリスト クラスからビューおよび編集フラグメントに送信する必要があるため、ViewModel はこれら 3 つのフラグメント間で共有され、共有 ViewModel には 3 つのフラグメントすべてのビジネス ロジックが含まれます。
多くの場合、ViewModel は複雑すぎて次のような共有として管理できないため、これは私には適切ではないようです。
ビューモデルの同じインスタンスを提供します。
この共有ビューモデルの私の理解が間違っているかどうかを知る必要があります。間違っている場合は修正してください。私の理解が正しければ、そのような場合にビューモデルをより効率的に管理する方法を教えてください。
android - ナビゲーションで safeargs を追加中にエラーが発生しました
フラグメントに safeargs を追加しようとしていました。私はこのコードラボに従っていました: Navigation Codelab。ただし、次の行を使用すると:
コンパイラ エラーが発生します。
分類子 'FlowStepFragmentArgs' にはコンパニオン オブジェクトがないため、ここで初期化する必要があります
これが私のメインのgradleファイルです:
と私のアプリgradleファイル:
私のnavigation.xmlは次のとおりです。
プロジェクトを複数回クリーンアップしましたが、効果はありません。私がここで犯している間違いを誰か指摘してもらえますか?
android - jetpack-navigation で状態リストを保存する方法
jetpack-navigation を使用してアプリを設計しました 次の図に示すように、あるフラグメントから別のフラグメントに移動すると、リストのステータスが消えるという問題があります。
実際、レイアウトから戻ると、記事はスタックに再作成され、リストのステータスは保存されず、ユーザーは再度スクロールする必要があります。私を助けてください?