私は航空会社の予約システムのような予約エンジン Android アプリに取り組んでいます。たとえば、乗客検索に固有のすべての利用可能な航空会社のコンテンツを取得するために、これがモバイルの画面に表示されます。
画面の読み込み時間、システムのメモリ消費量、追加機能を考慮すると、テーブル レイアウトとグリッド レイアウトのどちらが効果的ですか?
私は航空会社の予約システムのような予約エンジン Android アプリに取り組んでいます。たとえば、乗客検索に固有のすべての利用可能な航空会社のコンテンツを取得するために、これがモバイルの画面に表示されます。
画面の読み込み時間、システムのメモリ消費量、追加機能を考慮すると、テーブル レイアウトとグリッド レイアウトのどちらが効果的ですか?
**編集: この回答が書かれた時点ではこの行は正しかったのですが、99.9% 以上のすべての Android デバイスには適用されなくなりました: There is no GridLayout in the Android API.
**
(注:APIレベル14の時点で、最終的にGridLayoutがあります。以下の回答を参照してください。さらに、V7サポートライブラリは、GridLayoutサポートをAPI 7まで追加します。ただし、この回答のGridViewの説明は依然として正確であり、非常によく述べられています。)
GridView という意味であれば、TableLayout と GridView はまったく別のものです。
GridView は基本的に ListView に似ていますが、項目が厳密なグリッドに配置されています。これはアダプターに接続され、ユーザーがスクロールしてアダプターからビューを取得します。グリッド内のすべての要素は同じサイズでなければなりません。ユーザーは、表示されているセレクターを各項目に移動できます。GridLayout の目的は、Adapter からのデータを表示し、ユーザーが表示された各項目をナビゲートして選択できるようにすることです。ListView との唯一の違いは、項目が垂直リストではなくグリッドに配置されることです。
TableLayout は単なるレイアウト マネージャーであり、HTML のテーブルのようなものです。それ自体はスクロールしません。スクロールするものを作成するには、TableLayout を ScrollView に配置する必要があります。これは、表示しているすべてのデータを事前に TableLayout に入力する必要があることを意味します。そのため、ScrollView は、スクロールする合計スペースを認識します。また、「項目」ごとの選択や操作を直接提供するわけではありません。 TableLayout にはアイテムがなく、単なるレイアウト マネージャーです。
あなたは実際に何をしようとしているのかについて、誰かが何を使うべきかを推奨するのに十分な有用な情報を提供していませんでした. それはあなたが具体的に何を望んでいるかに大きく依存します。
「追加機能」って何の役に立つの?!? さて、あなたが探している機能は何ですか!
とにかく、一般的なルールとして、ユーザーがビューをスクロールしている大量のデータがある場合は、アダプターベースのビューを使用する必要があります。これらは、データを表示するためにビュー階層全体を事前に作成するよりもはるかに効率的です。また、アイテムごとの選択やその他の機能を自動的に提供する唯一のものでもあります。アプリケーションが使用する主なビューは ListView ですが、GridView も使用できます。
Android 4.0以降、 GridLayoutのようなものがあります。GridLayout は常に TableLayout よりも優先されます。TableLayout で既に持っているすべてを提供し、他のレイアウトも置き換えることができます。
これは非常にクールなようで、Google は LinearLayout と同じくらい人気があることを望んでいるようです (Android 4.0 のビデオによると)。
編集: 多くの項目を表示する必要がある場合は、GridLayoutManager で RecyclerView を使用することを検討してください。これは、メモリと CPU の使用量の面で役立ちます。
GridView
ビューのリサイクルやから継承されたもので実装されているので、うまくいくはずだと思いますAbsListView
。GridView
を使用する必要があるため、展開はより困難Adapter
ですが、画像などのロードする重いビューがたくさんある場合は効率的に機能します
グリッド レイアウトでは、numcolumns="autofit" を使用して、コンポーネントを自動的にビューに設定できます。ここでは必要な行数と列数を設定する必要はありませんが、テーブル レイアウトではそのようなオプションはなく、必要な行数と列数を設定する必要があります。テーブル レイアウトでは、相対レイアウトを使用しないと、1 行に複数のアイテムを挿入できません。
TableLayoutの方が使いやすいと思います。GridLayoutの場合、カスタムアダプターを作成する必要があるため、アプリケーションがより複雑になります。
さまざまなシーンサイズを見ると、GridLayoutはコンテンツに応じてそれ自体で適切な数の列と行を選択し、アイテムを追加することでより柔軟になります。
また、GridLayoutはより柔軟になりますが、作成するのにもう少し作業が必要です。