Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Webview,使用锚定_Java_Android_Anchor_Android Webview - Fatal编程技术网

Java Android Webview,使用锚定

Java Android Webview,使用锚定,java,android,anchor,android-webview,Java,Android,Anchor,Android Webview,我正在使用loadDataWithBaseURL()函数从数据库将网页加载到webview中,并尝试随后跳转到锚定点。当我在使用loadUrl()-函数的webview下方放置一个按钮时,它会很好地跳转到定位点。但是如果我将loadUrl()放在loadDataWithBaseURL()后面,它会说找不到页面 webview.loadDataWithBaseURL("app:myhtml", data, "text/html", "UTF-8", null); webview.loadUrl("

我正在使用
loadDataWithBaseURL()
函数从数据库将网页加载到webview中,并尝试随后跳转到锚定点。当我在使用
loadUrl()
-函数的webview下方放置一个按钮时,它会很好地跳转到定位点。但是如果我将
loadUrl()
放在
loadDataWithBaseURL()
后面,它会说找不到页面

webview.loadDataWithBaseURL("app:myhtml", data, "text/html", "UTF-8", null);
webview.loadUrl("app:myhtml#tips");
我假设这是因为加载尚未完成,因此它找不到锚,但我尝试了一个循环,等待它
getProgress()
等于100,并在该命令执行之前验证它是否达到100,但它仍然找不到页面,除非它与按钮单击关联

关于如何从数据库加载页面,然后同时跳转到锚定点的任何想法。我正在使用Android 2.1 SDK



多亏了你的帮助,我通过添加这段代码将它直接加载到我的锚中。然而,我无法在页面上滚动,它开始移动,然后快速返回。我怀疑是因为它每次都在将页面重新加载到该锚点。我对Android,甚至Java都是相当陌生的,所以这可能是你建议的错误实现,但我当然希望有更多的指导。以下是我使用的代码:

webview.setWebViewClient(new WebViewClient() {  
    @Override  
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(webview, "app://data");
        webview.loadUrl("app://data#tips");
    }  
});

这似乎是一个无限循环。

尝试在
loadDataWithBaseURL()
中使用有效的URL作为基本URL,例如
app://myhtml


另外,为了确保数据已加载到工具中。

它之前进入了一个无限onPageFinished循环。这与我滚动无关,只是不断加载同一页。此代码允许它加载而不会陷入循环中

webview.setWebViewClient(new WebViewClient() {  
    @Override  
    public void onPageFinished(WebView view, String url) {  
        if(url.contains("#") != true){
            webview.loadUrl("app://data#tips");
        }
    }  
});

多亏了你的帮助,我通过添加这段代码将它直接加载到我的锚中。然而,我不能在页面上滚动,我怀疑,因为它每次都会将页面重新加载到该锚点。我对Android,甚至Java都是相当陌生的,所以这可能是你建议的错误实现,但我当然希望有更多的指导。webview.setWebViewClient(新WebViewClient(){@Override public void onPageFinished(webview视图,字符串url){super.onPageFinished(webview,“app://data“”;webview.loadUrl(“”)app://data#tips");} });检查这个答案