2015-01-22 3 views
11

RecyclerView 항목에서 오른쪽/왼쪽 또는 오른쪽에서 삭제/아카이브 할 슬라이드에 대한 직접적인 지원이 있습니다.타사 라이브러리가없는 RecyclerView 항목에서 스 와이프 제스처를 수행하는 방법

그리고 삭제/보관 대신 목록 항목 아래에 4 개의 버튼이 필요합니다. 이 https://github.com/47deg/android-swipelistview 좋아하지만 recyclerview 공식 지원되지 않은 제 3 자 lib 디렉토리

+0

제스처 작성을 쉽게하기 위해 ItemTouchHelper를 사용하는 작은 라이브러리를 만들었습니다. 여기에서 찾을 수 있습니다. github.com/olmur/rvtools –

답변

7

예, 지원 라이브러리에서 제공하는 ItemTouchHelper 클래스로 가능합니다.

P. 며칠 전에이 작업을 수행해야했으며 가능한 경우 타사 라이브러리를 사용하지 않으려했습니다. 도서관은 여러분이 필요로하는 것보다 훨씬 더 많은 것을 할 수 있습니다. 그 때문에 여러분의 경우에 필요한 것보다 더 복잡 할 수 있습니다. 또한 메소드 수를 불필요하게 늘릴 수 있습니다. 이것은 문제의 빠른 수정으로 lib를 추가하지 않아야하는 이유의 샘플 일뿐입니다.

편집 : 이걸 보니,이 blog post과이 github repo을 참조하십시오.

+0

위대한 블로그 게시물이지만이 방법을 사용하여 작업 목록을 스 와이프하여 구현 했습니까? –

+0

무슨 뜻인지 잘 모르시겠습니까? 작업 목록을 스 와이프 하시겠습니까? –

+0

예, 스 와이프하여 행보기 뒤에 작업을 표시합니다. 호기심에서 벗어난 것. –

1

에 대한

일이 왜 제 3 자 라이브러리를 사용하고 싶지 않아? 네 개의 버튼이 필요하다면 해당 라이브러리를 편집하십시오 (사용권 조항을 존중할 수 있습니다)

귀하의 질문은 lib를 사용하지 않는 것이지만 경량이며 사용 준비가 된 것 같습니다. 그들이하는 일에 대해 살펴 보려면 코드를 탐색하십시오.

편집 : Here 사용자 정의보기를 사용하는 예입니다.

3

예. ItemTouchHelper를 사용하십시오. this project을 복제하여 사용 방법을 확인하십시오.

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

       @Override 
       public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { 
        //do things 
       } 
      }; 

    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleCallback); 
    itemTouchHelper.attachToRecyclerView(recyclerView); 

recyclerView 변수 지주 리사이클이다 : 특정 file를 들어

이 링크를 클릭하지 않으려는 게으른 사람들을 위해 라인 87

참조,이 방법을 설정합니다.

ItemTouchHelper.RIGHT 이외의 다른 방향으로 실험 해보십시오.

관련 문제