我想在我的代码中创建像pinterest这样的自定义视图,我在scrollview中使用scrollView和3 linearlayout
我自定义我的视图名称waterfallView这里是代码:
我自定义我的视图名称waterfallView这里是代码:
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);
那么第二个param convertView我想要使用RecycleBin的AbsListView类
我怎么能这样做?
解决方法
看看Umano团队的MultiItemRowlistadapter:
https://github.com/umano/MultiItemRowListAdapter/blob/master/README.md