web-dev-qa-db-ja.com

ScrollViewとListViewの違い

スクロールビューとリストビューの違いを説明できる人はいますか?いつ使用するのですか?そしてどちらがより効率的ですか?

39
Farooq Arshed

ScrollViewは、異なるまたは同じ子ビューまたはレイアウトを配置するために使用され、すべてをスクロールできます。

ListViewは、複数のアイテムとして同じ子ビューまたはレイアウトを配置するために使用されます。これらの項目もすべてスクロール可能です。

単にScrollViewは、同種と異種の両方のコレクション用です。 ListViewは同種のコレクション専用です。

27
Yugandhar Babu

それらは完全に異なります。

ScrollViewは、アイテムのリストである場合とそうでない場合があります。

http://developer.Android.com/reference/Android/widget/ScrollView.html

ListViewは、リストを保持するように特別に設計されており、項目は通常、同じように見えます(または、少なくともセクションヘッダーなどのパターンに従います)。 ListViewは、SQLite、配列、コンテンツプロバイダーなど、ある種のデータソースに接続するようにも設計されています。ListViewは、膨大な数のリストアイテムを処理するように拡張できます。

http://developer.Android.com/resources/tutorials/views/hello-listview.html

リストに表示する必要があるデータがある場合は、ListViewを使用します。コンテンツをスクロールする必要があるだけの場合は、おそらくScrollViewで十分です。

26
Ollie C

リストビュー:-

リストビューでリストに表示したいアイテムのレイアウトを簡単にxmlで管理できます。

表示リストに含めるアイテムの数をアダプタに通知する必要があります。

アダプターのgetItemViewType()メソッドをオーバーライドすることにより、要件に応じて同種ビューと異種ビューの両方を設計できます。

ListViewでは、リスト内のアイテムは画面サイズに従って作成されます。つまり、画面に表示できるアイテムの数が作成されます。実行時にリストがスクロールされると、追加のビュー(アイテム)が作成されます。一度表示されたビューは、画面から移動したときにキャッシュされ、リストをスクロールして前の状態に戻すと、同じビューが表示されますが、今回は作成されず、キャッシュからフェッチされます。

ScrollView:-

キャッシュの概念は、ScrollViewには適用されません。

すべてのビューは、画面に表示されるときに一度に作成され、スクロール中に画面の外に移動してもキャッシュされません。作成されたオブジェクトの数は、同じページに移動するまで参照されているため、ガベージコレクターによって破棄されないため、メモリリークにつながる可能性があるメモリ(メイン)に存在します。

ただし、同種のビューと異種のビューの両方を作成できます。リストに表示する項目がさらにある場合、XMLで設計する場合でも、Javaコードを使用して動的に作成する場合でも)レイアウトを管理するのは面倒です。

登録フォーム、予約フォームなどのアイテムのリストを含まない単一のページがあり、そのビューが画面サイズよりも大きい場合は、ScrollViewを使用することをお勧めします。親ビューとしてScrollViewを配置することもできます。直接の子のレイアウト/ビュー。

3

ScrollViewは、そのコンテンツをスクロール可能なコンテナーに配置するだけです。ビューを追加するだけで、コンテンツを編集できます。

ListViewは、データオブジェクトのビューの作成を処理するアダプターを使用するクラスです。データを編集するだけで、レイアウトの変更はアダプターによって自動的に行われます。

ScrollViewは、小さなデバイスで1つの画面に収まらない画面(たとえば、複数のフィールドを持つフォーム)がある場合に使用する必要があります。

データのセットを表す場合は、ListViewを使用する必要があります。

これらについては http://developer.Android.com/guide/index.html で読むことができます。

2
dzsonni

千の言葉の価値がある画像なので、ここに完璧な実例があります:

リストビューはKijijiアプリのようなものです

ScrollviewはEBayアプリのようなものです

また、ビルボードや壁のようなスクロールビューを見て、そこにさまざまなものをたくさん置くことができます。

リストビューは結果ページに似ています。結果はすべて同じ性質であるため、リストビューに完全に適合します。 連絡先リストのように:それらはすべて同じ構造を共有します。電話番号氏名住所など...

0
Patrick

ListViewは、DataSourceを含むアダプターによってサポートされています。これにより、データを簡単に行に表示できます。

ScrollViewを使用すると、その中にコンテンツを配置できます。コンテンツがScrollViewのサイズを超える場合は、ユーザーがスクロールできます。

どちらにも用途がありますが、何をしようとしているかによって異なります。

0
Mimminito