я создал 4 webviews
в элементе listview
и 40 пунктов в listview
, когда мой WebView загружен, иногда webview
не показывает содержание. Мне нужно коснуться его или пронести по нему, чтобы показать контент. Иногда он работает отлично.Android: Webview не отображает содержимое, пока не трогать на нем
Вот мое видео описывает мою проблему: https://youtu.be/YnVxGXEvsq0
Я уже пробовал:
webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
и добавили android:hardwareAccelerated="true"
в очевидном и
webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
, но не работает ,
Я не знаю, я думаю, что моя проблема в том, что слишком много webviews
, но я использую javascript
в webview
, чтобы отобразить мое содержание, так что я не могу изменить его TextView
.
w.getSettings().setJavaScriptEnabled(true);
w.setBackgroundColor(0x00000000);
w.getSettings().setBuiltInZoomControls(true);
w.getSettings().setDisplayZoomControls(false);
w.loadDataWithBaseURL("http://bar/", "<script type='text/x-mathjax-config'>"
+ "MathJax.Hub.Config({ "
+ "showMathMenu: false, "
+ "jax: ['input/TeX','output/HTML-CSS'], " // output/SVG
+ "extensions: ['tex2jax.js','toMathML.js'], "
+ "TeX: { extensions: ['AMSmath.js','AMSsymbols.js',"
+ "'noErrors.js','noUndefined.js'] }, "
+ "'HTML-CSS': {"
+ "styles: {'.MathJax': {color: '#00AAFF'}}}"
+ "});</script>"
+ "<script type='text/javascript' "
+ "src='file:///android_asset/MathJax/MathJax.js'"
+ "></script>"
+ "<script type='text/javascript'>getLiteralMML = function() {"
+ "math=MathJax.Hub.getAllJax('math')[0];"
// below, toMathML() rerurns literal MathML string
+ "mml=math.root.toMathML(''); return mml;"
+ "}; getEscapedMML = function() {"
+ "math=MathJax.Hub.getAllJax('math')[0];"
// below, toMathMLquote() applies &-escaping to MathML string input
+ "mml=math.root.toMathMLquote(getLiteralMML()); return mml;}"
+ "</script>"
+ "<span id='math'></span><pre><span id='mmlout'></span></pre>", "text/html", "utf-8", "");
w.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
}
});
спасибо, но это не работает для меня – Adam
Это мое видео, чтобы описать мою проблему: https://youtu.be/YnVxGXEvsq0. Не могли бы вы мне помочь? – Adam
используйте этот метод для форматирования URL-адреса URIUtil.encodeQuery («url ...»); ', чтобы преодолеть проблему из-за разбора URI и loadurl в shouldOverrideUrlLoading @ Adam –