2012-03-26 3 views
7

Я хочу сделать пользовательский вид, как Pinterest в моем коде, я использую Scrollview и 3 LinearLayout внутри Scrollview Я обычай мой взгляд имя waterfallView здесь код:Layout как 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); , тогда второй param convertView я хотел бы иметь класс AbsListView, используя RecycleBin Как я мог это сделать?

Pinterest 3 column layout

+2

Я не понимаю, вопрос .. Может ли быть более точным? Или еще раз проверьте свои предложения за недостающие слова? –

+0

Dcboy Вы получили этот тип вывода в андроиде? –

+0

ответил я это на StackOverflow [здесь] [1] [1]: http://stackoverflow.com/questions/12442795/pinterest-like-grid-in-android – Maurycy

ответ