Как получить позицию элемента внутреннего RecyclerView из внешнего RecyclerView? - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь создать волновой эффект для внешнего RecyclerView, даже если я касаюсь внутреннего RecyclerView.

Кажется, что когда я касаюсь внутреннего RecyclerView, внешний RecyclerView не получает фокус. Так что, нет ряби. Но когда я касаюсь не внутренней области RecyclerView, она имеет волновой эффект.

Итак, я пытаюсь использовать onInterceptTouchEvent().

holder.rcvOuterList.addOnItemTouchListener(object: RecyclerView.OnItemTouchListener{
    override fun onTouchEvent(rv: RecyclerView, e: MotionEvent) {
    }

    override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean {
        val pos = holder.rcvOuterList.getChildAdapterPosition(???) // I don't know how to get the inner recyclerview's item.

        Toast.makeText(holder.itemView.context, "Touched!!!!: ${pos}", Toast.LENGTH_SHORT).show()
        rv.findViewHolderForAdapterPosition(pos)!!.itemView.dispatchTouchEvent(e)

        /**
         * true if this OnItemTouchListener wishes to begin intercepting touch events,
        false to continue with the current behavior and continue observing future events in the gesture.
         */
        return true
    }

    override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) {
    }
})

Я думаю, что просто получаюpos в onInterceptTouchEvent(), все будет хорошо. Как я могу получить pos?

Или у вас есть идея получше?

ref: https://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnItemTouchListener

...