首页 > 解决方案 > 滚动到 webview 的顶部 (Android)

问题描述

用户单击对象后,我有一个 webview 加载大文本。我喜欢从顶部显示的文本。但是,如果用户在上一个文本中向下滚动,则下一个已经滚动并且不会从顶部显示。

webView.scrollTo(0,0);onPageFinishedwebview 事件中使用。

这在我的模拟器中运行良好,但在我的手机上,文本在中间滚动。

当使用 Thread.sleep 添加暂停时,它也适用于我的手机。我在这里做错了什么?

我的代码:

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        // Pause is needed for my physical phone S7. In Emulator there I have no problem.
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        webView.scrollTo(0,0);
        super.onPageFinished(view, url);
    }
});

标签: javaandroidwebviewandroid-webview

解决方案


试试这个代码块 -

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        // Pause is needed for my physical phone S7. In Emulator there I have no problem.
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        view.scrollTo(0,0);
        super.onPageFinished(view, url);
    }
});

实际上,您已经非常接近解决方案了。关键是您需要在 onPageFinished 方法的返回视图中设置 scrollTo 。


推荐阅读