0

私のアプリケーションでは、10 ~ 15 個のフィールドを含む入力フォームがあります。そのため、一度に 10 ~ 15 個のフィールドすべてを表示するよりも、インタラクティブにする方が理にかなっていると思いました。

私はそれが次のようになりたい:

アプリ: テキストとしての質問 1

ユーザー: editText の answer1

App と User は、それぞれの ImageView になります。

答えによっては2問目が表示されます。

アプローチ 1: すべての imageViews、TextViews、および EditText フィールドの可視性を false に設定し、前の質問に回答した後にそれらを表示します (次の質問のテキストは回答によって異なります)。

実際に私はこれを行いましたが、いくつかの問題があります:

問題1:レイアウトをScrollViewにしたので、ユーザーはレイアウトの一番下(ビューが見えないところ)までスクロールでき、ビューが見えない長いフォームであることがわかります。

問題 2: すべての質問は TextViews ですが、すべての回答フィールドは EditText ではなく、一部はスピナーで、一部はチェックボックスです。前の回答に応じて、スピナーまたはチェックボックスを表示する必要がある場合は機能しません(非表示のビューをスキップして次のビューに移動すると、空のスペースが作成されます)

アプローチ 2: すべてのビューを動的に作成する (これには時間がかかると思いますが、これもまた Ux の問題です)

私が望んでいたことを達成するためのより良いアプローチはありますか?? 解決策がある場合は、問題1と2の解決方法を教えてください

4

2 に答える 2

2

非表示のビューを作成する代わりに、 ViewStubを使用します。このようにして、レイアウト上のスペースを占有しません。

于 2012-07-17T09:41:56.733 に答える
1

最も単純なのは、ウィザード/アンケートの各「セクション」が個別のアクティビティである可能性があることです。

ただし、この種のタスクでは、同じアクティビティに要素を追加したり、同じアクティビティから要素を削除したりすることを好みます。

考えたいもう1つのポイントは、ナビゲーションです。つまり、次の質問に進むだけでなく、前の質問に戻ることです。単一のアクティビティで状態を追跡することはそれほど悪くはありませんが、各アクティビティが次のアクティビティと前のアクティビティを追跡するだけなので、前のアクティビティへの切り替えが簡単になる可能性があります。

于 2012-07-17T09:31:59.130 に答える