我希望能夠防止用戶能夠在我的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