【发布时间】:2012-03-26 03:54:40
【问题描述】:
我想在我的代码中创建一个像 pinterest 这样的自定义视图,我在滚动视图中使用 scrollView 和 3 个线性布局 我自定义我的视图名称瀑布视图这里是代码:
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
我怎么能这样做?
【问题讨论】:
-
我不明白这个问题.. 你能更准确一点吗?或者再次检查你的句子是否有遗漏的单词?
-
Dcboy 你在android中得到这种类型的输出了吗?
-
我已经在 stackoverflow [这里][1] [1] 上回答了这个问题:stackoverflow.com/questions/12442795/…
标签: android