日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

pb自定义控件 事件_Android WebView与下拉刷新控件滑动冲突的解决方法

發(fā)布時間:2024/7/23 Android 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pb自定义控件 事件_Android WebView与下拉刷新控件滑动冲突的解决方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? 使用WebView時一般會在外層使用下拉刷新控件如(SwipeRefreshLayout)。但是測試時會發(fā)現(xiàn)網(wǎng)頁無法上拉,往上滑動就會觸發(fā)下拉刷新控件的refresh事件。所以這里記錄一下解決該問題的辦法。

???1、通過webView.getScrollY() 的值來判斷是否滾動到頂部

private SwipeRefreshLayout mSwipe;mSwipe.setColorSchemeResources(R.color.green_ying_guang, R.color.goods_price_size, R.color.colorRed);/* * 設(shè)置下拉刷新的監(jiān)聽 */mSwipe.setOnRefreshListener(() -> {//刷新需執(zhí)行的操作 webView.reload(); mSwipe.setRefreshing(false);});mSwipe.setOnChildScrollUpCallback(new SwipeRefreshLayout.OnChildScrollUpCallback() {@Override public boolean canChildScrollUp(@NonNull SwipeRefreshLayout swipeRefreshLayout, @Nullable View view) { return webView.getScrollY()>0;

}

});

這方法適用于html端是一個類似于線性布局的,內(nèi)部控件沒有上下滑動的監(jiān)聽。如果html內(nèi)部有控件監(jiān)聽了上下滑動,就會有滑動沖突,所以需要方法2來解決。

2、自定義webview

在onTouchEvent中監(jiān)聽DOWN事件,然后設(shè)置mScrolly的值為1,這樣在子布局消耗完滑動事件前,mScrolly的值一直為1,SwipeRefreshLayout就不會攔截滑動事件(方法1中設(shè)置了mScrolly>0時不攔截)

@Overridepublic boolean onTouchEvent(MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:if (this.getScrollY() <= 0)this.scrollTo(0, 1); break; default:break; }return super.onTouchEvent(event);}

以上方法試用于絕大多數(shù)的webview下拉刷新滑動沖突,如果有不適用的,請聯(lián)系作者。

總結(jié)

以上是生活随笔為你收集整理的pb自定义控件 事件_Android WebView与下拉刷新控件滑动冲突的解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。