0

我在“资产”文件夹中有以下 HTML:

<html>
<head>
<style>
    a#button
    {
        cursor: pointer;
        background-size: 100% 100%;
        background-color: transparent;
        background-image: url('button.png');
    }
    a#button:active
    {
        cursor: pointer;
        border: 2px solid white;
    }
</style>
</head>
<body style="background-color: black; margin: 0px; border: 0px; padding: 0px;">
<img id="bkg" src="background.png" style="position: absolute; top: 0px;" />
<a id="button" href="someurl" style="position: absolute;"></a>
</body>
</html> 

如您所见,只有两张图像,没有别的。第二个图像是一个超链接,它引用了一个服务器,看起来像一个带有文本的按钮:“重试连接”。出现错误时显示页面:

@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
     view.loadUrl("file:///android_asset/html/nointernet.htm");
}

想象一下,当我看到我可以使用文本选择器在页面上选择文本时,我是多么震惊!我已将文本复制到剪贴板,然后粘贴到文本编辑器中,它是:

检查以确保您的设备有信号和数据连接稍后重新加载此网页。查看 ca

文字是从哪里出现的?!

问候,

4

1 回答 1

0

这是众所周知且非常古老(3 年)的 Android 问题http://code.google.com/p/android/issues/detail?id=2340,仍未解决。

更新

顺便说一句,我意想不到的解决方法似乎是我在那里读过的最好的。WebView 背景颜色应设置为零(黑色),以消除闪烁。此外,如果可能的话,通过 WebView 属性将超链接颜色设置为零(黑色)也是明智的,而不是在单击“重试”按钮时显示错误页面,您只会看到黑屏。

虽然我仍然不知道文本是如何在被点击时得到修复的,但这是我的页面和标准错误页面的奇怪混合......

更新 2

唉,没有超链接颜色(正常/已访问)的属性,但也许 setTextZoom() 和默认字体设置可以完全隐藏 URL(以不同的颜色呈现)。

于 2012-04-17T14:57:28.593 回答