2012-03-26 47 views
7

我要讓喜歡我的代碼Pinterest的自定義視圖,我用滾動視圖和內滾動視圖 3的LinearLayout我定製我的視圖名稱waterfallView這裏是代碼:佈局像Pinterest的

public class WaterfallView extends LinearLayout { 

private ListAdapter m_Adapter; 
private OnClickListener onClickListener = null; 
private LinearLayout m_Line1; 
private LinearLayout m_Line2; 
private LinearLayout m_Line3; 

public WaterfallView(Context context) { 
    super(context); 
    // TODO Auto-generated constructor stub 
    InitLine(); 
} 

public WaterfallView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    InitLine(); 
} 

private void InitLine() { 

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.MATCH_PARENT, 
      LinearLayout.LayoutParams.MATCH_PARENT); 
    lp.weight = 1; 

    // line2 
    m_Line1 = new LinearLayout(this.getContext()); 
    m_Line1.setOrientation(VERTICAL); 
    m_Line1.setLayoutParams(lp); 

    // line2 
    m_Line2 = new LinearLayout(this.getContext()); 
    m_Line2.setOrientation(VERTICAL); 
    m_Line2.setLayoutParams(lp); 

    // line3 
    m_Line3 = new LinearLayout(this.getContext()); 
    m_Line3.setOrientation(VERTICAL); 
    m_Line3.setLayoutParams(lp); 

    addView(m_Line1); 
    addView(m_Line2); 
    addView(m_Line3); 
} 

public ListAdapter getAdapter() { 
    return m_Adapter; 
} 

private void BindLayout() { 
    int count = m_Adapter.getCount(); 
    for (int i = 0; i < count; i++) { 
     View v = m_Adapter.getView(i, null, null); 
     v.setOnClickListener(this.onClickListener); 
     if (i == 0 || i % 3 == 0) 
      m_Line1.addView(v); 

     if (i == 1 || i % 3 == 1) 
      m_Line2.addView(v); 

     if (i == 2 || i % 3 == 2) 
      m_Line3.addView(v); 
    } 
    Log.v("countTAG", "" + count); 
} 

private void AddItem(){ 

} 

public void setAdapter(ListAdapter adapter) { 
    this.m_Adapter = adapter; 
    BindLayout(); 
} 

public OnClickListener getOnclickListner() { 
    return onClickListener; 
} 

public void setOnclickLinstener(OnClickListener onClickListener) { 
    this.onClickListener = onClickListener; 
    } 
} 

在BindLayout函數有m_Adapter.getView(i, null, null); 然後第二個參數convertView我想有AbsListView類使用RecycleBin 我怎麼能這樣做?

Pinterest 3 column layout

+2

我不明白的問題..你能更準確?或者再次檢查你的句子是否有遺漏的單詞 – 2012-03-26 04:00:01

+0

Dcboy你有沒有在android中獲得這種類型的輸出? – 2012-12-11 08:00:26

+0

我已經回答了這個計算器上[這裏] [1] [1]:http://stackoverflow.com/questions/12442795/pinterest-like-grid-in-android – Maurycy 2012-12-16 06:24:13

回答