問題タブ [android-architecture]

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.

0 投票する
0 に答える
66 参照

kotlin - PagedList の BoundaryCallback が呼び出されない

デバイスにルーム データベースを作成しました。

このファクトリ コールはリポジトリで使用され、そこでboundaryCallback に接続します。

私の境界コールバックは基本的で、そのように見えます

問題は、データソース (ルーム データベース) にエントリが含まれていないにもかかわらず、境界コールバックが呼び出されないことです。何が問題なのか手がかりはありますか?

0 投票する
1 に答える
5525 参照

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 は複雑すぎて次のような共有として管理できないため、これは私には適切ではないようです。

ビューモデルの同じインスタンスを提供します。

この共有ビューモデルの私の理解が間違っているかどうかを知る必要があります。間違っている場合は修正してください。私の理解が正しければ、そのような場合にビューモデルをより効率的に管理する方法を教えてください。