2012-03-26 45 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

回答