1

私はすべてのセルがカスタムビューであるRecyclerViewを持っています。私のカスタムビューでは、ボタンのようなものがあります。ユーザーがこのボタンを長押しすると、スワイプジェスチャーを行うことができます。RecyclerViewセルはRecyclerViewsタッチイベントを消費できますか?

しかし、ときにユーザが上下にスクロールRecyclerViewをスワイプ。

私のカスタムビューをスクロールするRecyclerView beginn前にこのスワイプジェスチャーを消費することはできますか?私はGestureDetectorを実装し、私のカスタムビューで

。今まではクリックと長押しのために働いています。私はまた、boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)を上書きし、スクロールイベントがとにかく消費が、RecyclerViewをスクロールさを示すために、trueを返します。

EDIT:

ここに私のコード(抜粋):

class EventListView(context: Context, attrs: AttributeSet) : View(context, attrs), 
    GestureDetector. OnGestureListener, GestureDetector.OnDoubleTapListener { 

    private val gestureDetector: GestureDetector 


    init { 

     gestureDetector = GestureDetector(context, this) 
    } 


    override fun onTouchEvent(event: MotionEvent?): Boolean { 
     var result = gestureDetector.onTouchEvent(event); 
     if (!result) { 
      if (event?.action == MotionEvent.ACTION_UP) { 
       Timber.i("ACTION_UP") 

       animateAlpha(alpha, 0) 
       result = true; 
      } 
     } 

     return result; 
    } 


    // 
    // OnGestureListener 
    // 

    override fun onDown(e: MotionEvent): Boolean { 
     return isInside(e) 
    } 

    override fun onShowPress(e: MotionEvent) { 
     if (isInside(e)) 
      showPressState() 
    } 

    override fun onSingleTapUp(e: MotionEvent): Boolean { 
     return false 
    } 

    override fun onLongPress(e: MotionEvent) { 

    } 

    override fun onScroll(e1: MotionEvent, e2: MotionEvent, distanceX: Float, distanceY: Float): Boolean { 
     return true 
    } 

    override fun onFling(e1: MotionEvent, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean { 
     return true 
    } 

    // 
    // OnDoubleTapListener 
    // 

    override fun onSingleTapConfirmed(e: MotionEvent): Boolean { 
     return false 
    } 

    override fun onDoubleTap(e: MotionEvent): Boolean { 
     return false 
    } 

    override fun onDoubleTapEvent(e: MotionEvent): Boolean { 
     return false 
    } 
} 
+0

あなたは意味がありません。何をやっている場合は、人々が自分自身のため見ることができますので、あなたのコードを表示したい場合がありますスクロールを停止します。 –

+0

コードスニペットを追加しました。これはKotlinに書かれています –

答えて

0

わかりました、私はそれを得ました。私は私のカスタムビューでgetParent().requestDisallowInterceptTouchEvent(true)を呼び出すとRecyclerViewは

関連する問題