当我尝试将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);
    }
}

10-07 19:30
查看更多