アイテムの高さがどのように変化に応じて、いくつかのオプションがあります:あなたがで遊んでなければならない高さ(例えばPinterestの)の多くのバリエーションとGridView
を行うために探している場合は
をStaggeredGridView - 私が知る限り、今のところオープンソースのベストソリューションだ。あなたが投稿した画像で
、それは高さが可変の子供を持つ親行があるかのように見えます - これは解決するために、わずかに簡単な問題であり、定期的な老いListView
とBaseAdapter
のサブクラスを使用することによって模倣することができます。これのためのコードを書くことはあまりにもSOの答えに関与していますが、私はあなたにこの効果を達成する方法の概要を教えてあげます。
BaseAdapter
が先にそれが必要になりますどのように多くの行のリストビューに報告することができるように、時間の各行のラフなレイアウトを決定しなければならない - あなたはgetCount()
を上書きする必要があります。
- アダプターの
getView()
には、LinearLayout
(またはリサイクルされている場合はconvertViewを使用)を1つ増やし、デバイスの幅に必要な数の子供を追加します(数字はLinearLayouts
)電話やタブレットのバージョンを作成する場合を除き、実行時にこれを実行してください)。
LinearLayout
- 行に加えそれぞれの子は、重量にしなければならない= 1は、それらが親行の幅全体に伸びるようになっています。投稿したスクリーンショットには、3つの列があります(3番目のIDは切り捨てられています)。
- 行に追加した各子
LinearLayout
は、列を表します。向きが垂直で、列のように設定する必要があります。
- 各列内に1つの子を追加する場合は、グリッドビューを使用します。
- 上記の効果を得るには、各列に項目を追加できます。
- たとえば、行1の列1には大きな子が1つあります。行1の列2と列3の両方に、2つの半分の高さの子があります。
私は変更されたStaggeredGridViewを使用しています。 – Matroska