1

각 카드 스택을 위에서 아래로 스 와이프하여 카드 스택을 구현하고 싶습니다. 누군가가 레이아웃 관리자와 함께 RecyclerView를 사용하여이를 구현합니다. 충분한 코드가 없습니다.안드로이드 Vertical RecyclerView에서 StackLayoutManager를 구현하는 방법

Recyclerview를 사용하여이를 수행하는 방법.

recyclerView.setLayoutManager(new StackLayoutManager(this)); 

를 마지막으로 스 와이프를 처리하기위한 ItemTouchHelper을 추가 : 당신의 RecyclerView와 함께 사용보다

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

을 :

답변

0

이 방법을 시도 내가 시도 할 것이다

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

덕분에 ... –

관련 문제