我希望能够防止用户能够在我的Android ScrollView中滚动,但仍然能够检测他们何时点击滚动视图中的按钮。禁用Android滚动视图,但仍然允许在滚动视图中的按钮上点击
我已经划分了ScrollView类,并且一直在摆弄onInterceptTouchEvent
和onTouchEvent
方法,但似乎无法让它完全正确。下面的代码停止滚动,但似乎禁用点击(但不是全部,如果你上下没有任何移动它的工作,但如果你的手指稍微移动,因为你点击它不会注册)。我也刚刚删除了onInterceptTouchEvent
,它几乎可以工作,但滚动视图仍然会在用户移除手指时滚动。
@Override public boolean onInterceptTouchEvent(MotionEvent ev) { App.log("onInterceptTouchEvent, with action : " + ev.getAction()); switch(ev.getAction()) { case MotionEvent.ACTION_MOVE: return true; } return super.onInterceptTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent ev) { App.log("onTouchEvent, with action : " + ev.getAction()); switch(ev.getAction()) { case MotionEvent.ACTION_MOVE: return false; } return super.onTouchEvent(ev); }
嗯......似乎不是正确的答案,肯定有办法阻止在一开始不滚动担心这种'overscroll'业务(并且我不能只用'setOverScrollMode'禁用过度滚动?) –
ScrollView使用该方法执行滚动。无可否认,它几乎不是一个完美的解决方案,但是在ScrollView的接口上没有特定的'allowScrolling(boolean)'或类似的特性来执行你想要的,我认为它和其他方法一样好。 – nmw