2016-11-18 217 views
8

我已经设置了切缘阴性的项目是这样的: -Recyclerview - 重叠项下往上

ItemDecoration.java

public class ItemDecorator extends RecyclerView.ItemDecoration { 
    private final int mSpace; 

    public ItemDecorator(int space) { 
     this.mSpace = space; 
    } 

    @Override 
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { 
     int position = parent.getChildAdapterPosition(view); 
     if (position != 0) 
      outRect.top = mSpace; 
    } 
} 

MainActivity.java

recyclerView.setLayoutManager(new LinearLayoutManager(this)); 
recyclerView.addItemDecoration(new ItemDecorator(-80)); 

这会导致顶部项目在顶部项目与其重叠后堆叠最低和下一个项目。我想要顶部项目重叠其下一个项目等。

当前视图

enter image description here

所需的视图

enter image description here

回答

5

试试这种方式并使您的回收站视图反向。

LinearLayoutManager layoutManager = new LinearLayoutManager(this); 
     layoutManager.setReverseLayout(true); 
     layoutManager.setStackFromEnd(true); 
     recyclerView.setLayoutManager(layoutManager); 

这里是工作示例GitHub Link

+0

完美答案! –

+1

@BilalHaiderMakki,很高兴为你工作。 – Tasneem

+0

如果有人正在使用Bilal的ItemDecorator,那么当你这样做时,最后一张卡片将位于顶部。因此,确保不需要偏移的位置不是0,而是itemCount - 1.此外,此顶部项目将是item3,而不是item1 – Boy

0

尝试重写此方法。

@Override 
public int getItemViewType(int position) { 
    return super.getItemViewType(position); 
} 
+0

谢谢您的回答。真的很感激它。我想你很想理解我的问题。为了更好地理解我的要求,我添加了照片。请看一看。 –

+0

@BilalHaiderMakki你能发布你的完整代码吗? – Sridhar

+0

增加了更多代码。 –