(Above is hierarchical structure, Inner view is inside middile view, which is inside Outer View)
So this my understanding of touchEvents given there is no dispatchTouchEvent
.
If there is touch event on InnerView if it does not consume it, it will get propagated to MiddleView and if it also does not consumes the event it propagate to outerView.
Now I have a ViewPager2.
i have simple onTouchListener to check if touch is being propagated or not like below
findViewById<ViewPager2>(R.id.main_viewpager).setOnTouchListener{
v,e->
Log.d("TAG","ViewPager TouchEvent")
false
}
with help of log statements if touch inside the fragment or any childView inside the fragment, my touch event is propagated to Root of the fragment as expected. But however it seems the touch is not propagated to ViewPager2, i.e. The log statement is not being logged.
But if i click inside ViewPager2 but outside fragment i.e. in the padded area. I can the Log statement “ViewPager TouchEvent” is logged.
Why my fragment’s touch event is not being propagated to ViewPager2?