当我尝试将setSpanizeLookup与GridLayoutManager一起使用时,它不会出错。但是,使用相同的setSpanizeLookup和StaggeredRidLayoutManager会产生错误。显然这不是一个有效的类。是否有任何方法可以将setSpanizeLookup与StaggeredRidLayoutManager一起使用,或者您是否可以建议其他解决方案来实现相同的结果?
下面是我如何使用SetSpanizeLookup和GridLayoutManager-
GridLayoutManager llm = new GridLayoutManager(getActivity(), 2);
llm.setSpanSizeLookup(new SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if(position == 0)
{
return 2;
}
else
{
return 1;
}
}
});
基本上,我想将第一个项的跨距大小设置为最大值,将随后的行设置为一半。有什么想法吗?
最佳答案
如何
在适配器实现中:
@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);
}
}