2016-03-15 3 views
0

я создал 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) { 
    } 

});

ответ

0

попробуйте использовать shouldOverrideUrlLoading в коде

webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } });

это может помочь.

+0

спасибо, но это не работает для меня – Adam

+0

Это мое видео, чтобы описать мою проблему: https://youtu.be/YnVxGXEvsq0. Не могли бы вы мне помочь? – Adam

+0

используйте этот метод для форматирования URL-адреса URIUtil.encodeQuery («url ...»); ', чтобы преодолеть проблему из-за разбора URI и loadurl в shouldOverrideUrlLoading @ Adam –

Смежные вопросы