-1

私のアプリには、すべてのコントロール(チェックボックス、ラジオボタン、ドロップダウンリストなど)を表示する線形レイアウトの画面があります。画面を表示すると、すべてのコントロール (1000 個のコントロール) が読み込まれ、表示されます。すべてのコントロールの読み込みと表示に時間がかかります。この代わりに、画面に 10 個のコントロールのみを表示し、下にスクロールすると、別の 10 個のコントロールが動的に読み込まれて画面に表示されるようにすることはできますか。

線形レイアウトを使用していますが、リストビューを使用したくありません。

編集

すべてのコントロールが単一の行にないため、リストビューを使用できません。たとえば、row1 としてチェックボックス コントロールを、row2 で日付を表示し、row3 としてラジオ ボタンまたはテキストを編集します。これらのすべてのコントロールは、サーバーから動的に取得されます。したがって、ここでは、リストビューを使用できません。

4

3 に答える 3

1

あなたの編集引数は間違っています。行は論理単位であり、定義済みのものではありません。行内に何を入れるかは、コントロールの複数であっても、完全にあなた次第です。

ListView を使用して、行に表示する内容を動的に変更する必要があります。あなたが言ったように:行1にチェックボックスを入れ、行2に日付表示を取得し、行3にTextViewとオン/オフトグルのような2つの考えがあります。そのための構築を行うのはあなた次第ですが、真剣に: ListView を使用してください!

それに加えて、これのUXはひどいものであり、「してはいけないこと」リストの完璧な例です. サーバーからのコントロールを何らかの方法で構造化します。各設定画面には、「サウンド」、「ビデオ」、「通知」などのいくつかのカテゴリがあります...あなたのコントロールに同じようにしてください!取得したコントロールを何らかの方法で分類できないとは思えません。

UXの災害を防ぐためにそれに取り組む必要があります...

于 2013-03-15T16:05:59.673 に答える
0

確かに、しかし、遅延読み込みなどを実装するだけで、スクロール位置に基づいてデータをスクロールおよびロードできる調整された LinearLayout になります。それをうまく行うには、アダプタを呼び出すことができ、ロードを処理する別のクラスを作成します。

そして、ListView の不適切なバージョンを作成したことに気付きます。

于 2013-03-12T09:33:24.293 に答える
0

コンテナに異なるタイプのビューを動的にロードするための最も洗練されたソリューションは、AdapterView. Adapterそうすれば、必要なすべてのビューを作成できる を実装できます。これは、必要なすべてのビューを作成する代わりに、範囲外にスクロールするビューを再利用するため、非常に効率的な方法です。

私のコードでは、拡張するコンテナを使用していますがAdapterView<ListAdapter>、うまく機能します。

于 2013-03-12T09:37:23.707 に答える