解決SwipeRefreshView與WebView滾動(dòng)沖突問(wèn)題

這種滾動(dòng)沖突,我遇到的情況是WebView中加了一個(gè)網(wǎng)頁(yè),網(wǎng)頁(yè)中有嵌套的滾動(dòng)布局,導(dǎo)致嵌套滾動(dòng)與SwipeRefreshView無(wú)法協(xié)調(diào)。

  • 自定義WebView,重寫(xiě) onTouchEvent
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()){
            case MotionEvent.ACTION_DOWN:
                // 有些網(wǎng)頁(yè),上下滾動(dòng),getScrollY()恒為0, 推測(cè)是滾動(dòng)事件被網(wǎng)頁(yè)內(nèi)布局捕獲,所以網(wǎng)頁(yè)內(nèi)的布局內(nèi)部滾動(dòng),網(wǎng)頁(yè)大框架整體沒(méi)有滾動(dòng);
                // 所以針對(duì)這種情況,手動(dòng)向上滾動(dòng)1,那么getScrollY()會(huì)為1;
                // 當(dāng)向下滾動(dòng)到達(dá)頂部時(shí),即網(wǎng)頁(yè)內(nèi)布局內(nèi)部的滾動(dòng)到達(dá)頂部,事件不被內(nèi)部捕獲,被網(wǎng)頁(yè)大框架捕獲,會(huì)把向上滾動(dòng)的1拉下來(lái)
                // 個(gè)人理解(by jiangjh)
                if(this.getScrollY() <= 0){
                    this.scrollTo(0,1);
                }
                break;
            case MotionEvent.ACTION_UP:
                break;
        }
        return super.onTouchEvent(event);
    }
  • 在調(diào)用處,設(shè)置SwipeRefreshViewOnChildScrollUpCallback
mSwipeRefreshView.setOnChildScrollUpCallback(new SwipeRefreshLayout.OnChildScrollUpCallback() {
       @Override
       public boolean canChildScrollUp(SwipeRefreshLayout parent, @Nullable View child) {
           return child.getScrollY() > 0;
       }
});
通過(guò)webview頂部是否增加1長(zhǎng)度的滾動(dòng)來(lái)判斷SwipeRefreshView和WebView誰(shuí)來(lái)捕獲處理滾動(dòng)事件。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,856評(píng)論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,128評(píng)論 4 61
  • 很快或許就得說(shuō)一句,別了,蘭卡,但我會(huì)說(shuō),再會(huì)。 斯里蘭卡 斯里蘭卡,全稱(chēng)斯里蘭卡民主社會(huì)主義共和國(guó)(The De...
    WOODHouse閱讀 343評(píng)論 0 0
  • 一天狂風(fēng)未歇 夾著小雨 昨日歸家復(fù)來(lái) 兩眼暈轉(zhuǎn) 頭上一片混亂 天也暗沉 漸至黑夜 還在輾轉(zhuǎn)難眠 不想舍友盛來(lái)一碗面...
    赤子天涯心閱讀 152評(píng)論 0 1

友情鏈接更多精彩內(nèi)容