タブレットや Pinterest の Google+ などのアプリで使用されているような異種グリッド ウィジェットを Android で構築したいと考えています。チュートリアルが見つからず、特に難しいようです。
残念ながらGridView
、異なるサイズのセルを実現したいのですが、同じサイズのセルしか持てません。良いチュートリアルを教えてもらえますか? 私は延長しなければならないことだけを知っていAbsListView
ます。
タブレットや Pinterest の Google+ などのアプリで使用されているような異種グリッド ウィジェットを Android で構築したいと考えています。チュートリアルが見つからず、特に難しいようです。
残念ながらGridView
、異なるサイズのセルを実現したいのですが、同じサイズのセルしか持てません。良いチュートリアルを教えてもらえますか? 私は延長しなければならないことだけを知っていAbsListView
ます。
項目の高さがどの程度変化するかに応じて、いくつかのオプションがあります。
GridView
高さのさまざまなバリエーション (Pinterest など) を探している場合は、 StaggeredGridViewをいじる必要 があります。私が知る限り、これは現時点で最高のオープン ソース ソリューションです。
ListView
あなたが投稿した画像では、高さが可変の子を持つ親行があるように見えますBaseAdapter
. このためのコードを書き出すことは、SO の回答にはあまりにも複雑ですが、この効果を達成する方法の概要を説明します。
BaseAdapter
必要な行数をリストビューに報告できるように、事前に各行の大まかなレイアウトを決定する必要があります-オーバーライドする必要がありますgetCount()
。getView()
で、単一のものを膨らませLinearLayout
(または、リサイクルされている場合はおそらく convertView を使用LinearLayouts
します)、デバイスの幅に必要なだけ多くの子 (これも more ) を追加します (実行時にこれを把握する必要があります。電話とタブレットのバージョンを作成したいだけです)。LinearLayout
は、親行の幅全体に広がるように weight=1 に設定する必要があります。投稿したスクリーンショットでは、3 つの列があります (3 番目の ID が切り取られています)。LinearLayout
は列を表します。それらは列であるため、向きを垂直に設定する必要があります。