2016-11-18 218 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

增加了更多代碼。 –