Répondre

0

Essayez de cette façon:

public class StackLayoutManager extends LinearLayoutManager { 

    public StackLayoutManager(Context context) { 
     super(context); 
     setStackFromEnd(true); 
    } 

    @Override 
    public RecyclerView.LayoutParams generateDefaultLayoutParams() { 
     return new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
    } 

    @Override 
    public boolean canScrollHorizontally() { 
     return false; 
    } 

    @Override 
    public boolean canScrollVertically() { 
     return false; 
    } 

    @Override 
    public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) { 
     super.onLayoutChildren(recycler, state); 
     updatePosition(); 
    } 

    private void updatePosition() { 
     int childCount = getChildCount(); 
     for (int i = 0; i < childCount; i++) { 
      View view = getChildAt(i); 
      ViewCompat.setTranslationY(view, -view.getTop()); 
     } 
    } 
} 

que de l'utiliser avec votre RecyclerView:

recyclerView.setLayoutManager(new StackLayoutManager(this)); 

Et enfin ajouter ItemTouchHelper pour le traitement balayant:

ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { 
     @Override 
     public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { 
      return false; 
     } 

     @Override 
     public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) { 
      int pos = viewHolder.getAdapterPosition(); 
      if (pos != RecyclerView.NO_POSITION) { 
       adapter.onRemove(viewHolder); 
      } 
     } 
    }); 

itemTouchHelper.attachToRecyclerView(recyclerView); 
+0

merci je vais essayer ... –