當前位置:首頁 » 安卓系統 » android嵌套滑動

android嵌套滑動

發布時間: 2025-06-10 17:16:16

⑴ Android 解決viewPager中嵌套webView的滑動沖突

   在工作中遇到了一種情況,在可以橫向滑動的viewPager其中的一項中嵌套著一個webView,並且在這個webView中也有可以橫向滑動的的類似viewPager的組件,因為webView其中的H5組件我們是無法控制的,因此便會發生滑動沖突,現象則是webView中的H5組件無法滑動。比如下圖

   經過筆者的一陣搜索,借鑒了 Viewpager與webview滑動沖突的解決方案 一文的解決方案,並在其基礎上改進了一下,使之處理起來更加簡單一些。

   首先我們先確定滑動沖突是事件分發機制的事情。解決辦法需要在需要的地方進行事件的攔截和分發可以使用下面的方法

   當為true的時候則說明父控制項(也就是viewPager)不攔截事件,點擊事件由子控制項(也就是webView)來處理,反之為false的時候,父控制項則攔截點擊事件,子控制項無法響應點擊事件。

   此時我們需要Android原生和JS交互一下,來通知我們什麼時候攔截事件,什麼時候不攔截事件。首先我們要先和H5的小夥伴商量好方法名和參數,在H5中可以監聽到是否點擊了或者滑動了輪播圖,H5的小夥伴可以在監聽值判斷,如果點擊或者滑動了H5中的輪播圖則,調用Android原生的方法參數為true,Android端則進行事件的攔截,反之沒有點擊或者滑動的時候,則調用方法參數為false。
交互方法:

   如果有不懂Android原生與H5交互方法的可以看我的一篇文章 <Android中webveiw與H5進行交互>

此時我們拿到參數以後就可以進行事件的攔截

   這樣就可以對事件分發進行處理,不過此處需要注意的是攔截事件的方法 wb.(isIntercept);必須要寫在Touch事件中才可以生效,寫在webview初始化的地方是不可以的。
  ok,筆者認為這種方法比H5端去測量輪播圖的位置,然後告訴Android端,Android端再去判斷位置去攔截事件要簡單一些。當然這只是個人想法,還是要感謝借鑒文章的大佬,畢竟是站在了巨人的肩膀上。

熱點內容
安卓機在哪裡調振動大小 發布:2025-07-02 12:53:31 瀏覽:847
linux系統如何查看伺服器ip地址 發布:2025-07-02 12:51:57 瀏覽:243
dlna怎麼指定伺服器地址 發布:2025-07-02 12:51:08 瀏覽:213
ftp默認埠是多少 發布:2025-07-02 12:50:32 瀏覽:735
java隱藏 發布:2025-07-02 12:36:39 瀏覽:202
php中文分割 發布:2025-07-02 12:35:24 瀏覽:835
如何建資料庫表 發布:2025-07-02 12:13:35 瀏覽:966
netbox解壓 發布:2025-07-02 12:12:57 瀏覽:244
java的outputstream 發布:2025-07-02 12:10:06 瀏覽:252
福特銳界買哪個配置劃算 發布:2025-07-02 12:09:58 瀏覽:743