0

私は Android の初心者で、いくつかのかなり複雑なビューを持つアプリケーションを設計中です。ビューの 1 つは、モデル オブジェクトに関連付けられ、いくつかの異なるビューに分離された情報を表示する複雑なビューを含むことを目的としています。そのナビゲーションは、スライド効果 (つまり、ある画面から次の画面にトラバースするために画面上で指をスライドさせるなど) を使用して達成されることを意図しています。ビュー自体は、さまざまなタイプのモデル オブジェクトの複数のビュー セットをホストするために使用されますが、それらすべての間で再利用される一般的な構造を備えています。大まかな例として、人物 (モデル オブジェクト) に関する情報を表示するビューが表示され、いくつかの詳細ビューが表示されます。一般情報のビュー、趣味のリストを表示するビュー、ソーシャル ネットワークに関連付けられている他の個人のリストを表示するビュー。特定の車を表すモデル オブジェクトが与えられた場合、同じ一般的なビューはいくつかの異なるビューを提供します: 詳細を含む一般的なビュー、その車両の写真画像を含むビュー、購入できる場所を表すビュー、および関連車一覧です。(注: これは関連する実際のデータではありませんが、ビューの一般的な意図を表しています)。サブビューは画面全体をカバーするわけではなく、ビュー内の他の機能は表示され、ユーザーが操作できるようにする必要があります。その車両の写真画像を含むビュー、購入可能な場所を表すビュー、および関連する車両のリストを提供するビュー。(注: これは関連する実際のデータではありませんが、ビューの一般的な意図を表しています)。サブビューは画面全体をカバーするわけではなく、ビュー内の他の機能は表示され、ユーザーが操作できるようにする必要があります。その車両の写真画像を含むビュー、購入可能な場所を表すビュー、および関連する車両のリストを提供するビュー。(注: これは関連する実際のデータではありませんが、ビューの一般的な意図を表しています)。サブビューは画面全体をカバーするわけではなく、ビュー内の他の機能は表示され、ユーザーが操作できるようにする必要があります。

ここでの考え方は、再利用可能で、ビューに渡されるモデル オブジェクトのタイプに基づいて動的に生成される一連のサブビューを管理する一般的なビュー構造があるということです。

フレームワークの整合性に違反することなくこれを達成するために、Android フレームワークを活用する適切な方法を決定しようとしています。基本的に、この大きなビューを再利用可能なユニット (つまり、一般的なビュー、モデル固有のサブビュー コントローラー、個々の詳細ビュー) にコンポーネント化する方法を決定しようとしています。より具体的に言うと、このビューが複数のカスタム View クラスの複合として設計するのが最適なのか、それとも複数の Activity クラスの複合として設計するのが最適なのかを判断しようとしています。カスタム複合ビューの例をいくつか見てきましたが、それらは通常、複雑なコントローラーを使用せず、一般的なアクティビティ ライフサイクル (つまり、必要に応じてモデル オブジェクトに関連するデータの保存と取得) に注意を払うことなく、単純なビューを作成するために使用されます。一方、唯一の実際の例は私です。

私が探しているアプリケーション フレームワークを実現するためにビューを構成する適切な方法について、誰か提案はありますか? ビュー?活動?他の何か?

任意のガイダンスをいただければ幸いです。前もって感謝します。

4

2 に答える 2

0

フレームワークの整合性に違反することなくこれを達成するために、Android フレームワークを活用する適切な方法を決定しようとしています。

電話の RAM と CPU は非常に限られています。平均的な Android デバイスには、10 年前の PC と同じかそれ以下のパワーがあります。アプリケーションを過度に設計しないでください。

より具体的に言うと、このビューが複数のカスタム View クラスの複合として設計するのが最適なのか、それとも複数の Activity クラスの複合として設計するのが最適なのかを判断しようとしています。

私は「上記のどれでもない」と主張します。Android 開発者コミュニティ全体に配布するための「カスタム ビュー クラス」を作成することを目指している場合、それは 1 つのことです。ただし、状況に応じて、ビルドするだけですViews-それらをサブクラス化しないでください。ViewAndroidのシステムに関しては、私は間違いなく「継承よりも構成」の考え方です。

私見ですが、Activity はコントローラー (または、MVP であるプレゼンターの方が優れたアーキテクチャの例えです) であり、レイアウト XML とその構成要素Viewsはビュー レイヤーであり、データベースはモデルです。

于 2010-05-29T00:59:01.490 に答える
0

私はあなたがそこに言ったことすべてに従ったかどうか確信が持てませんが、フローを示す図が役立つかもしれませんが..

通常、一度に表示できるアクティビティは 1 つだけです。そのアクティビティは、ビュー全体のレンダリングを担当します。私が見た唯一の例外は、ポップアップの警告スタイルのウィンドウです。私の経験では、それらは少し遅い傾向があります。通常、ページを変更するたびに新しいアクティビティが発生します。あなたの場合、一般的な見方が変わるたびにそうなるかもしれません。

ただし、さまざまなアクティビティで再利用できるいくつかのレイアウトを簡単に作成できます。レイアウトは構成可能であるため、たとえば、メイン レイアウトに含まれる詳細レイアウト用の 1 つのレイアウトを持つことができます。

于 2010-05-29T01:02:06.490 に答える