关闭全屏视图后,Android WebView 视频,webview 自动滚动

RKS*_*RKS 9 html android webview html5-video

WebView用来显示包含文本和视频内容的网页。

它按预期正确加载和显示视频。

但是,当我进入视频的全屏视图(我实现了此处给出的全屏视频视图)然后返回时WebViewWebView自动滚动一定数量。

我该如何解决?

请提出一些想法/链接。

KnI*_*fER 1

我已经在使用兼容的 ScrollChangedListener 了。因此,我决定在 onHideCustomView 之后的一段时间内将视图滚动回此侦听器中。

网页视图:

public interface OnScrollChangedListener {
    void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY);
}

    public void SafeScrollTo(int x, int y) {
        OnScrollChangedListener mScrollChanged = mOnScrollChangeListener;
        mOnScrollChangeListener =null;
        scrollTo(x, y);
        mOnScrollChangeListener =mScrollChanged;
    }

    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
        super.onScrollChanged(l, t, oldl, oldt);
        if(mOnScrollChangeListener !=null)
            mOnScrollChangeListener.onScrollChange(this,l,t,oldl,oldt);
    }

    public void setOnScrollChangedListener(OnScrollChangedListener onSrollChangedListener) {
        mOnScrollChangeListener =onSrollChangedListener;
    }

    OnScrollChangedListener mOnScrollChangeListener;
Run Code Online (Sandbox Code Playgroud)

活动:

mWebview.setOnScrollChangedListener((v, x, y, oldx, oldy) -> {
                ArticleWebView webview = (ArticleWebView) v;
                if(CustomViewHideTime>0 && System.currentTimeMillis()-CustomViewHideTime<350){
                    webview.SafeScrollTo(oldx, oldy);
                    return;
                }});
Run Code Online (Sandbox Code Playgroud)

WebChrome客户端:

        @Override
        public void onHideCustomView() {
            CustomViewHideTime = System.currentTimeMillis();
            //todo delay and set CustomViewHideTime to 0
        }
Run Code Online (Sandbox Code Playgroud)

这可以很好地工作。