2016-11-18 20 views
8

üste bindirme öğeleri Böyle öğeler için negatif marjı belirledik: -Recyclerview - dip

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)); 

Bu, en üst öğenin üst öğe üst üste geldikten sonra en düşük ve sonraki öğeyi yığmasına neden olur. Bir sonraki öğenin üst öğesinin üst üste gelmesini istiyorum.

Geçerli Görünüm

enter image description here

Gerekli Görünüm

enter image description here

cevap

5

Bu şekilde deneyin ve geri dönüştürücünüzün görünümünü ters yönde döndürün. İşte

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

çalışma ömeği Cevabınız için GitHub Link

+0

Mükemmel cevap! –

+1

@BilalHaiderMakki, Memnuniyetle sizin için çalıştı. – Tasneem

+0

Birisi Bilal'in ItemDecorator'ını kullanıyorsa, bunu yaptığınızda son kart en üstte olacaktır. Bu nedenle, ofsetin açılmadığı konumun 0 değil, itemCount - 1 olduğundan emin olun. Ayrıca, bu en üstteki öğe item1 yerine item3 olacaktır. – Boy

0

bu yöntemi geçersiz kılma deneyin.

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

Teşekkür olduğunu. gerçekten takdir ediyorum. Sanırım sorumu anladım. Gereksinimi daha iyi anlamak için resimler ekledim. Lütfen bir göz at. –

+0

@BilalHaiderMakki Tam kodunuzu gönderebilir misiniz? – Sridhar

+0

, daha fazla kod eklendi. –