快速,可能很簡單,問題。我有一個視圖,其背景是動畫,在那段時間,我想禁止用戶與視圖交互。我的視圖是一個FrameLayout,我用onTouchEvent()捕獲觸摸事件。我試過的解決方案:如何禁用/重新啓用Android中的觸摸事件?
1)首先setOnTouchListener(null),然後setOnTouchListener(this)。問題是,我的視圖只調用onEventEvent(MotionEvent),而不是onTouch(View,MotionEvent),所以我無法通過事件泵。 2)首先setEnabled(false),然後setEnabled(true)。源代碼說:一個可點擊的禁用視圖仍然消耗觸摸事件,它只是不響應它們。問題是,MotionEvents仍然會通過onTouchEvent()傳遞。
3)requestDisallowInterceptTouchEvent(false),then(true)。這隻能處理來自父級的觸摸事件。
我工作的解決方案是使用布爾變量isAnimating,並檢查onTouchEvent()中的值。我寧願不這樣做,因爲它對我來說看起來很醜,我寧願使用API來代替它,而不是重新發明輪子,所以......任何人有任何想法?謝謝。
我會盡力的,謝謝。 編輯:沒有運氣,我仍然可以在動畫過程中觸摸並與視圖進行交互。 –
你能否請[編輯]解釋爲什麼這段代碼回答這個問題?僅限代碼答案[阻止](http://meta.stackexchange.com/q/148272/274165),因爲他們沒有教導解決方案。 –