2012-09-08 40 views
6

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

enter image description here

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

答えて

0

アイテムの高さがどのように変化に応じて、いくつかのオプションがあります:あなたがで遊んでなければならない高さ(例えばPinterestの)の多くのバリエーションとGridViewを行うために探している場合は

  1. StaggeredGridView - 私が知る限り、今のところオープンソースのベストソリューションだ。あなたが投稿した画像で

  2. 、それは高さが可変の子供を持つ親行があるかのように見えます - これは解決するために、わずかに簡単な問題であり、定期的な老いListViewBaseAdapterのサブクラスを使用することによって模倣することができます。これのためのコードを書くことはあまりにもSOの答えに関与していますが、私はあなたにこの効果を達成する方法の概要を教えてあげます。

    • BaseAdapterが先にそれが必要になりますどのように多くの行のリストビューに報告することができるように、時間の各行のラフなレイアウトを決定しなければならない - あなたはgetCount()を上書きする必要があります。
    • アダプターのgetView()には、LinearLayout(またはリサイクルされている場合はconvertViewを使用)を1つ増やし、デバイスの幅に必要な数の子供を追加します(数字はLinearLayouts)電話やタブレットのバージョンを作成する場合を除き、実行時にこれを実行してください)。
    • LinearLayout
    • 行に加えそれぞれの子は、重量にしなければならない= 1は、それらが親行の幅全体に伸びるようになっています。投稿したスクリーンショットには、3つの列があります(3番目のIDは切り捨てられています)。
    • 行に追加した各子LinearLayoutは、列を表します。向きが垂直で、列のように設定する必要があります。
    • 各列内に1つの子を追加する場合は、グリッドビューを使用します。
    • 上記の効果を得るには、各列に項目を追加できます。
    • たとえば、行1の列1には大きな子が1つあります。行1の列2と列3の両方に、2つの半分の高さの子があります。
+0

私は変更されたStaggeredGridViewを使用しています。 – Matroska