如何添加view到一个线性布局?

如何添加view到一个线性布局?,第1张

LinearLayout ll = new LinearLayout(this)ll.setOrientation(LinearLayout.VERTICAL)TextView tv = new TextView(this)tv.setText("textview")ll.addView(tv)Button button = new Button(this)tv.setText("button")ll.addView(button)

[java] view plain copy

// 拓展列表添加

private ArrayList mHeaderViews = new ArrayList>()

外声明添加部布局

[java] view plain copy

public void addHeaderView(View view) {

mHeaderViews.add(view)

}

修改WrapAdapter构造

[java] view plain copy

public WrapAdapter(ArrayList headerViews, ArrayList footViews, RecyclerView.Adapter adapter) {

this.adapter = adapter

this.mHeaderViews = headerViews

this.mFootViews = footViews

}

加部位置判断

[java] view plain copy

@Override

public void onAttachedToRecyclerView(RecyclerView recyclerView) {

super.onAttachedToRecyclerView(recyclerView)

RecyclerView.LayoutManager manager = recyclerView.getLayoutManager()

if (manager instanceof GridLayoutManager) {

final GridLayoutManager gridManager = ((GridLayoutManager) manager)

gridManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {

@Override

public int getSpanSize(int position) {

return (isHeader(position) || isFooter(position))

? gridManager.getSpanCount() : 1

}

})

}

}

@Override

public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) {

super.onViewAttachedToWindow(holder)

ViewGroup.LayoutParams lp = holder.itemView.getLayoutParams()

if (lp != null

&&lp instanceof StaggeredGridLayoutManager.LayoutParams

&&(isHeader(holder.getLayoutPosition()) || isFooter(holder.getLayoutPosition()))) {

StaggeredGridLayoutManager.LayoutParams p = (StaggeredGridLayoutManager.LayoutParams) lp

p.setFullSpan(true)

}

}

public boolean isHeader(int position) {

return position >= 0 &&position <mHeaderViews.size()

}

onCreateViewHolder()通同类型返同布局onBindViewHolder()判断布局候做任何 *** 作即需要部布局位置绑定adapter


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/7968118.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存