小编Dar*_*iak的帖子

NestedScrollView 和 onInterceptTouchEvent

我确实扩展了 NestedScrollView 和 @Override 它的方法:onTouchEventonInterceptTouchEvent。问题是 super.onTouchEvent 从不调用 ACTION_DOWN (它由我的 onIntereceptTouchEvent 调用)并且因为 NestedScrollView 不移动,我得到错误:

onTouchEvent 中的无效pointerId=-1

当 ACTION_DOWN 被触发时,指针 id 在 NestedScrollView 的 onTouchEvent 方法中设置。

mActivePointerId = MotionEventCompat.getPointerId(ev, 0);
Run Code Online (Sandbox Code Playgroud)

我不能自己设置这个,重写整个 onTouchEvent 方法似乎是一个痛苦的计划。可以在这里使用帮助。当我单击不侦听触摸事件的 View 时,NestedScrollView 确实会移动(基本上就是这样我的 onInterecptTouchEvent 方法不被调用并且 ACTION_DOWN 在 NestedScrollView onTouchEvent 中处理)。

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    Log.i(LOGTAG, String.valueOf(ev.getAction()));

    final int action = MotionEventCompat.getActionMasked(ev);

    if (action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP) {
        mIsBeingDragged = false;
        Log.i(LOGTAG, "is scrolling" + String.valueOf(mIsBeingDragged));
        return false; // Do not …
Run Code Online (Sandbox Code Playgroud)

android touch-event nestedscrollview

2
推荐指数
1
解决办法
2183
查看次数

标签 统计

android ×1

nestedscrollview ×1

touch-event ×1