2012-03-26 15 views
7

Quiero hacer una vista personalizada como Pinterest en mi código, yo uso ScrollView y 3 LinearLayout dentro ScrollView me encargo de mi nombre de vista waterfallView Aquí está el código:Disposición como 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; 
    } 
} 

En el La función BindLayout es m_Adapter.getView(i, null, null); y luego el segundo param convertView me gustaría tener la clase AbsListView usando RecycleBin ¿Cómo podría hacer eso?

Pinterest 3 column layout

+2

No entiendo la pregunta .. ¿Podría ser más preciso? ¿O revisa nuevamente tus oraciones por palabras faltantes? –

+0

Dcboy ¿obtuviste este tipo de salida en Android? –

+0

he respondido a esto en StackOverflow [aquí] [1] [1]: http://stackoverflow.com/questions/12442795/pinterest-like-grid-in-android – Maurycy

Respuesta

Cuestiones relacionadas