2016-11-18 9 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であることを確認してください。また、この先頭の項目はitem1ではなくitem3になります – Boy

0

このメソッドをオーバーライドしてみます。

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

おかげ実施例です。心から感謝する。私はあなたが私の質問を理解していないと思う。私は私の要件のより良い理解のための写真を追加しました。見てください。 –

+0

@BilalHaiderMakki完全なコードを投稿できますか? – Sridhar

+0

コードを追加しました。 –

関連する問題