[英]ListView parent view cannot intercept touch events
我有一個簡單的布局:
<CustomFrameLayout>
<ListView />
</CustomFrameLayout>
在我的CustomFrameLayout中,我要重寫:
onInterceptTouchEvent(MotionEvent event);
並返回false。 滾動ListView時,onInterceptTouchEvent會接收ACTION_DOWN和第一個ACTION_MOVE事件。 然后,ListView似乎接手了,並且onInterceptTouchEvent無法接收以下ACTION_MOVE事件。
這與文檔指出的相反:
只要您從此函數返回false,隨后的每個事件(直至並包括最終的up)將首先在此處傳遞,然后傳遞到目標的onTouchEvent()。
我研究了請求觸摸事件在ListView級別不被攔截。
requestDisallowInterceptTouchEvent(boolean disallowIntercept)
這似乎沒有任何作用。 我也應該在ListView單元格視圖上調用它嗎? 還有其他我想念的東西嗎? 我正在Android 4.4上進行測試
謝謝。
您應該在onInterceptTouchEvent(MotionEvent event);
返回true
onInterceptTouchEvent(MotionEvent event);
true
表示您願意接受進一步的觸摸操作,而false
表示您對進一步的操作不感興趣...
我決定改寫此方法。 在這里,我可以保證在將所有觸摸事件分派給子視圖並由子視圖潛在使用之前,可以攔截所有觸摸事件。
dispatchTouchEvents(MotionEvent event);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.