gpt4 book ai didi

android - 防止内 View onTouch时滑动ViewPager2

转载 作者:行者123 更新时间:2023-12-03 20:26:27 25 4
gpt4 key购买 nike

我有一个 ViewPager2 里面有一个 fragment ,

在 fragment 中,我有一个自定义 View ,其中包含涉及移动手指的某些触摸逻辑。

如何防止 ViewPager 在内部 View 拦截触摸事件时滑动?

override fun onTouchEvent(event: MotionEvent?): Boolean {
if (event?.action == MotionEvent.ACTION_DOWN || event?.action == MotionEvent.ACTION_MOVE) {
//Do some stuff here
}
return true
}

滑动此 View 时, View 寻呼机仍会滑动到其他页面。

最佳答案

为内部 View 设置 OnTouchListener。在 onTouch()方法,调用:

viewPager.requestDisallowInterceptTouchEvent(true)

ViewPager 在 onInterceptTouchEvent() 中处理其滑动 Action .以上代码阻止 ViewPager 调用 onInterceptTouchEvent() .滑动时,ViewPager 在 onInterceptTouchEvent() 中返回 true这也可以防止将触摸事件传递给 subview 。因此不允许拦截允许 subview 处理触摸事件。

设置回 false当内部 View 未被触及时。

根据我的经验, onInterceptTouchEvent()防止 onTouchEvent() .它不会阻止 OnTouchListener .所以这里的关键是设置 OnTouchListener为内观。

关于android - 防止内 View onTouch时滑动ViewPager2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60328756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com