当我尝试在GridLayoutManager中使用setSpanSizeLookup时,它可以正常工作而不会出错。但是,对StaggeredGridLayoutManager使用相同的setSpanSizeLookup会导致错误。显然,它不是一个有效的类。有没有办法在StaggeredGridLayoutManager中使用setSpanSizeLookup,或者你能推荐一个替代的解决方案来达到同样的效果吗?
下面是我如何在GridLayoutManager中使用setSpanSizeLookup --
GridLayoutManager llm = new GridLayoutManager(getActivity(), 2);
llm.setSpanSizeLookup(new SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if(position == 0)
{
return 2;
}
else
{
return 1;
}
}
});从本质上讲,我希望将第一个项目的跨度大小设置为最大值,并将后续行设置为一半。有什么想法吗?
发布于 2017-03-31 13:18:43
这是如何在适配器中实现的:
@Override
public void onViewAttachedToWindow(RecyclerView.ViewHolder holder) {
super.onViewAttachedToWindow(holder);
ViewGroup.LayoutParams lp = holder.itemView.getLayoutParams();
if(lp != null
&& lp instanceof StaggeredGridLayoutManager.LayoutParams
&& holder.getLayoutPosition() == 0) {
StaggeredGridLayoutManager.LayoutParams p = (StaggeredGridLayoutManager.LayoutParams) lp;
p.setFullSpan(true);
}
}https://stackoverflow.com/questions/33066737
复制相似问题