web-dev-qa-db-ja.com

Androidのマスター詳細フォーム

私は頻繁に使用され、多くの入力フィールドを必要とし、ユーザーが望むときに更新できるアクティビティがありますが、あまり一般的ではありません。

この瞬間、私はこのようなものを持っています:

形式はマスター/詳細フォームであり、詳細はExpandableListView内にあります。これには、10個(またはそれ以上)の使用可能なアイテムのうち約1〜2個(またはそれ以上)の子アイテムがあります。各子には独自の入力フィールド(2〜4)があり、いくつかは必須です。

| Master Information |
|                    | <- Input field 1
|                    | <- Input field 2
|                    | <- Input field 3
|                    | <- Input field 4
|         [Add Child]| <- Button to add a child, which opens a listactivity to pick item
| [ChildItem]      > | <- ExpandableListView Item
|  Child Details     | <- Input fields
|  Child Details     | <- Input fields
| [ChildItem]      > |
|  Child Details     | <- Input fields
|  Child Details     | <- Input fields

この場合、スピナーを使用する代わりにListActivityを開くことを選択しました。これは、スピナーが私の意見ではあまりにも多くのスペースを埋めるためです。また、私は新しいアイテムを挿入する必要があるかもしれません、そして私はスピナーがそのための正しいものではないと思います。

しかし、私は現在の形式全体にまったく満足していません。これはあまりにも標準的で退屈だと思います。すべての子アイテムを開き始めると、多くのスペースを埋めることができます。

以下は、私が考え得る2つのシナリオです。

シナリオ1

ExpandableListViewを保持しますが、各子は、入力フィールドを持つのではなく、最も重要な情報のみを表示します。新しい子を追加したり、子を編集するふりをしたりすると、DialogFragmentなどが開きます。

長所:

  • フォームを参照すると、各子アイテムが小さくなり、読みやすくなります。

短所:

  • DialogFragmentはあまりにも破壊的かもしれませんか?

シナリオ2

ExpandableListViewを削除し、代わりにList/GridViewを追加します。 AddChildを押すと、右側にバーが開き、使用可能なアイテムが一覧表示されます。次に、必要なアイテムをListViewにドラッグアンドドロップします。次に、DialogFragmentが開き、アイテムの情報を入力できます。

長所:

  • アイテムを表すアイコン/名前(左/右または上/下)形式。
  • クリックするだけでなく、動的フロー。
  • Windows 8のチャームバーのように開くジェスチャーを追加する可能性はありますか?

短所:

  • 最も重要な情報を確認するには、DialogFragmentを開く必要があります。
  • 最大10個のアイテムを含めることができるため、リストは長くなる可能性があります。
  • 表示されるリストアイテムを制限する場合、[...]オプションを追加してListActivityを開く必要があります。
  • 子アイテムには長い名前を付けることができるため、すべてを表示することはできません。
  • ジェスチャーがあったら、どういうわけかそれをどのように動作させるかを通知する必要があります。

もしあれば、どのシナリオを提案しますか?より良いパターンがありますか?

2
jaimetotal

このページ(www.androidpatterns.com)、 展開可能なリストまたはデータのドリルダウン を見ると、データを表示するための最良のオプションになる可能性があります。次に、商品と両方の短所を詳しく調べると、データドリルダウンを使用します。拡張可能なリストを使用すると、1つの画面(スクロール)で情報が多すぎて多くの情報が表示されるためです。すぐには表示されない情報の数。 (最大10の子アイテムと最大4の子詳細を持つことができます... 1つの画面には情報が多すぎます)。

とにかく、このページには、使用できるパターンがたくさんあります(たとえば、新しい子を追加するために モードセレクター を使用できます)。

これがお役に立てば幸いです。

1
Isis Roca