-1

RecyclerViewはViewGroupですか?以下のコードのようにRecyclerViewはViewGroupですか?

、私は唯一のViewGroupsで使用されonInterceptTouchEventを使用していると私はrecyclerViewでこれを実装していて、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スタジオで[Ctrl +左マウス]を使用して[RecyclerView]を選択すると、あなたの質問に対する回答がわかります。 – Enzokie

答えて

0

RecyclerViewクラスは、ListViewコントロールとGridViewのクラスに関連しており、それは、Androidの古いバージョンのためRecyclerView support libraryを通じてGoogleが利用可能になっているのViewGroupのサブクラスです。 RecyclerViewクラスでは、効率的なアイテムのリサイクルにview holder design pattern を使用する必要があります。また、このコンポーネントを非常に柔軟にするために、LayoutManager、デコレータ、アイテムアニメーターの使用をサポートしています。

+0

ビューホルダーのデザインパターンは、 "効率的なアイテムのリサイクル"とは関係がありません。ビューをバインドするときに 'findViewById'を呼び出すことは避けてください。 – pskink

+0

ViewHolderデザインパターンを実装することでアプリケーションのパフォーマンスを大幅に向上できます。 –

+0

いいえ、これは真実ではありません。99%のケースではパフォーマンスが改善されません。findViewByIdを2回または3回または4回呼び出すと多くの費用がかかりません。 – pskink

関連する問題