3

当我尝试在GridLayoutManager中使用setSpanSizeLookup时,它的工作原理没有错误。但是,使用与StaggeredGridLayoutManager相同的setSpanSizeLookup会导致错误。这显然不是一个有效的课程。有什么办法可以在StaggeredGridLayoutManager中使用setSpanSizeLookup,或者你可以建议一个替代解决方案来实现相同的结果吗?使用setSpanSizeLookup和StaggeredGridLayoutmanager

下面是我用setSpanSizeLookup与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; 
       } 
     } 
}); 

基本上我想设置的第一个项目的跨度大小为最大值,随后行至一半。有任何想法吗?

+1

你的问题很相似,我的,它有一个答案,帮助我,可能会帮助你,如果你仍然在寻找一个答案:HTTP:// stackoverflow.com/questions/33696096/setting-span-size-of-single-row-in-staggeredgridlayoutmanager/33707897#33707897 –

回答

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); 
    } 
} 
相关问题