gpt4 book ai didi

Android,加载数据后将webview滚动到Y位置

转载 作者:行者123 更新时间:2023-11-30 01:18:56 24 4
gpt4 key购买 nike

应用说明

我正在为 android EPub 阅读器 编写代码。

书籍部分 (html) 已加载到 WebView

问题

设备旋转后,我试图滚动到 webview 中的最后一个位置作为文本。

数据通过 loadData(text, ..., ...) 加载到 webview 中,因为我不是从 URL 加载网页,而是从本地保存在 EPub 文件中的 html。

webView.loadData(text, "text/html; charset=UTF-8", null);

我发现这个函数是异步的,我必须等到数据完全加载,然后再尝试滚动。

我已经尝试过建议的解决方案,例如

final int Y = savedInstanceState.getInt(CURRENT_WEBVIEW_POSITION_Y);

webView.postDelayed(new Runnable() {
public void run() {
if (webView.getProgress() == 100) {
webView.postDelayed(new Runnable() {
public void run() {
webView.scrollTo(0, Y);
}
}, 10);
} else {
webView.post(this);
}
}
}, 10);

final int Y = savedInstanceState.getInt(CURRENT_WEBVIEW_POSITION_Y);

while (webView.getProgress() < 100){
Thread.sleep(50);
}
Thread.sleep(10);
webView.scrollTo(0, Y);

但他们没有工作。

webview 的 Y 位置正确地存储到 bundle 中并从 bundle 中检索。

最佳答案

修改第一个代码解决的问题:

webView.postDelayed(new Runnable() {
@Override
public void run() {
if (webView.getContentHeight() > 0){
webView.scrollTo(0, Y);
webView.removeCallbacks(this);
} else {
webView.postDelayed(this, 10);
}
}
}, 10);

在这里解决 Is there a listener for when the WebView displays it's content?

关于Android,加载数据后将webview滚动到Y位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37407095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com