我在使用 <input type="password">
时遇到了问题Honeycomb 设备上的 WebView 中的字段。任何时候 ScrollView ,屏幕都会闪烁黑色,甚至可以在滚动结束后保持全黑(除了它会绘制聚焦的密码字段)。我在我检查过的所有三款 Honeycomb 平板电脑上都看到了这一点。
我可以在浏览器应用程序中加载相同的 HTML,但我没有看到这个问题。我已经尝试更改 WebView 的 WebSettings/WebChromeClient/WebViewClient 上的许多设置,但没有成功。我已将下面的代码加载到 Froyo 平板电脑上,但没有出现此问题,因此这似乎是 Honeycomb 特有的问题。
有没有人见过这个?我目前不知道如何解决或解决此问题。
这是重现该问题的简短代码示例。只需聚焦密码字段并上下滚动即可。有一个密码类型输入字段和一个文本类型输入字段,只是为了表明该问题不会出现在文本类型字段中。 <div>
标签只是为了让滚动和查看问题变得更容易,尽管没有 <div>
问题仍然存在标签。
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class PasswordFieldTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
String html = "<html><body><div style=\"with: 120%; height: 200%; border: 20px dashed black;\">" +
"Password: <input type=\"password\" name=\"passfield\"/><br/>" +
"Text: <input type=\"text\" name=\"textfield\"/>" +
"</div></body></html>";
webview.loadData(html, "text/html", "utf-8");
setContentView(webview);
}
}
最佳答案
在尝试了此处建议的所有方法后,这终于在所有手机上对我有用:
android:hardwareAccelerated="true"
和:
if (android.os.Build.VERSION.SDK_INT < 16) {
webView.setBackgroundColor(0x00000000);
} else {
webView.setBackgroundColor(Color.argb(1, 0, 0, 0));
}
如果您发现无法使用此功能的手机,请告诉我。 适用于这些手机:
- 注释 2 (4.1.2)
- htc 一台 (4.0.4)
- 银河 s3 (4.3)
- nexus4 (4.3)
关于android - Honeycomb WebView 上的黑色闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7097884/