-1

RecyclerView는 ViewGroup입니까? 나는 ViewGroups 만 나는 recyclerView 이것을 구현하고 같은과 함께 사용 onInterceptTouchEvent를 사용하고 아래의 코드와 같이 RecyclerView는 ViewGroup입니까?

RecyclerViewViewGroup이다? 그렇지 않다면 onInterceptTouchEvent을 구현하는 ViewGroup은 무엇이며보기는 무엇입니까?

나는이를 구현하기 위해 노력하고 있습니다 : link here

이 저를 도와주세요.

static class RecyclerTouchListener implements RecyclerView.OnItemTouchListener { 

     private GestureDetector gestureDetector; 
     private ClickListener clickListener; 

     public RecyclerTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) { 
      this.clickListener = clickListener; 
      gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { 
       @Override 
       public boolean onSingleTapUp(MotionEvent e) { 
        return true; 
       } 

       @Override 
       public void onLongPress(MotionEvent e) { 
        View child = recyclerView.findChildViewUnder(e.getX(), e.getY()); 
        if (child != null && clickListener != null) { 
         clickListener.onLongClick(child, recyclerView.getChildPosition(child)); 
        } 
       } 
      }); 
     } 

     @Override 
     public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { 

      View child = rv.findChildViewUnder(e.getX(), e.getY()); 
      if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) { 
       clickListener.onClick(child, rv.getChildPosition(child)); 
      } 
      return false; 
     } 

     @Override 
     public void onTouchEvent(RecyclerView rv, MotionEvent e) { 
     } 

     @Override 
     public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { 

     } 


    } 
+0

** Pro 도움말 ** : Android Studio에서 [Ctrl + 왼쪽 마우스]를 사용하여 'RecyclerView'를 선택하면 질문에 대한 답변을 알 수 있습니다. – Enzokie

답변

0

RecyclerView 클래스리스트 뷰와의 GridView 클래스에 관련되어 그 안드로이드의 이전 버전에 대한 RecyclerView support library을 통해 구글에 의해 가능하게 된 뷰 그룹의 서브 클래스입니다. RecyclerView 클래스는 효율적인 항목 재활용을 위해 view holder design pattern 을 사용해야하며 단순함을 희생하면서이 구성 요소를 매우 유연하게 만들기 위해 LayoutManager, 장식 자 및 항목 애니메이터를 사용할 수 있습니다.

+0

뷰 홀더 디자인 패턴은 "효율적인 아이템 리사이클"과 아무런 관련이 없습니다. 뷰 바인딩시 findViewById 호출을 피할 수 있습니다. – pskink

+0

ViewHolder 디자인 패턴을 구현하여 애플리케이션의 성능을 크게 향상시킬 수 있습니다. –

+0

아니요, 이것은 사실이 아닙니다. 99 %의 경우 실제로 성능이 향상되지 않습니다. findViewById를 두 번 또는 세 번 또는 네 번 호출하면 많은 비용이 들지 않습니다. – pskink