阻止NestedScrollView滚动父NestedScrollView?

时间:2018-02-09 11:43:52

标签: android android-nestedscrollview nestedscrollview android-touch-event

我有NestedScrollView(NSVchild),在水平RecyclerView内,在另一个NestedScrollView(NSVparent)内。 NSVchild内部是一个带有长文本的TextView

我现在想知道的是,当NSVchild从顶部或底部完成滚动时,如何防止NSVchild滚动NSVparent?

我尝试了什么:

我尝试扩展NestedScrollView并覆盖onTouchEvent,并在NSVchild处于scroll 0并且用户在屏幕上向下拖动时返回false,并且当NSVchild处于最大值{{ {1}}用户正在向上拖动。返回scroll按预期工作,但问题是当用户在屏幕上向上或向下拖动时理解。这是代码:

false

在这种方法中,float deltaY = 0; float oldY = 0; @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_MOVE: float y = ev.getY(); deltaY = y - oldY; oldY = y; Log.i("deltaY", deltaY+""); break; } [...] return super.onTouchEvent(ev); } 表示屏幕向上拖动,deltaY < 0表示反之亦然。只要有NSVchild可以在其内部滚动的空间,它就可以正常工作。当它从一侧完成滚动并开始滚动NSVparent时,deltaY > 0将在一帧中变得小于0,而在下一帧中变得大于0,这使得我的代码无用。

还有其他方法可以达到我的目的吗?或者更好的方法来了解屏幕是否被向上或向下拖动?

0 个答案:

没有答案