У меня возникла проблема при использовании полей <input type="password">
в устройствах WebView on Honeycomb. Каждый раз, когда прокручивается представление, экран мерцает черным и даже может оставаться черным (за исключением того, что он будет рисовать сфокусированное поле пароля), когда прокрутка заканчивается. Я видел это на всех трех сотовых планшетах, которые я проверил.
Я могу загрузить тот же HTML-код в приложении Browser, и я не вижу этой проблемы. Я попытался изменить многие настройки в WebSettings/WebChromeClient/WebViewClient из WebView и не повезло. Я загрузил код ниже на планшет Froyo, и эта проблема не возникала, поэтому это похоже на проблему сотовой связи.
Кто-нибудь видел это раньше? Я не понимаю, как исправить или обмануть эту проблему в настоящее время.
Вот пример короткого кода, который воспроизводит проблему. Просто сосредоточьте поле пароля и прокрутите вверх и вниз. Там введите поле ввода типа пароля и поле ввода типа текста, чтобы показать, что проблема не возникает в поле типа текста. Тег <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);
}
}