6

タブレットや Pinterest の Google+ などのアプリで使用されているような異種グリッド ウィジェットを Android で構築したいと考えています。チュートリアルが見つからず、特に難しいようです。

ここに画像の説明を入力

残念ながらGridView、異なるサイズのセルを実現したいのですが、同じサイズのセルしか持てません。良いチュートリアルを教えてもらえますか? 私は延長しなければならないことだけを知っていAbsListViewます。

4

1 に答える 1

0

項目の高さがどの程度変化するかに応じて、いくつかのオプションがあります。

  1. GridView高さのさまざまなバリエーション (Pinterest など) を探している場合は、 StaggeredGridViewをいじる必要 があります。私が知る限り、これは現時点で最高のオープン ソース ソリューションです。

  2. ListViewあなたが投稿した画像では、高さが可変の子を持つ親行があるように見えますBaseAdapter. このためのコードを書き出すことは、SO の回答にはあまりにも複雑ですが、この効果を達成する方法の概要を説明します。

    • BaseAdapter必要な行数をリストビューに報告できるように、事前に各行の大まかなレイアウトを決定する必要があります-オーバーライドする必要がありますgetCount()
    • アダプターの中getView()で、単一のものを膨らませLinearLayout(または、リサイクルされている場合はおそらく convertView を使用LinearLayoutsします)、デバイスの幅に必要なだけ多くの子 (これも more ) を追加します (実行時にこれを把握する必要があります。電話とタブレットのバージョンを作成したいだけです)。
    • 行に追加された各子LinearLayoutは、親行の幅全体に広がるように weight=1 に設定する必要があります。投稿したスクリーンショットでは、3 つの列があります (3 番目の ID が切り取られています)。
    • 行に追加した各子LinearLayoutは列を表します。それらは列であるため、向きを垂直に設定する必要があります。
    • 各列内に 1 つの子を追加すると、グリッドビューが作成されます。
    • 上記の効果を達成したい場合は、各列にさらに項目を追加できます。
    • たとえば、行 1、列 1 には 1 つの大きな子があります。行 1 の列 2 と列 3 には、両方ともハーフハイトの子が 2 つあります。
于 2013-04-01T22:24:24.947 に答える