WebView如何强制ContentHeight更新

时间:2010-10-21 11:31:18

标签: android webview

我正在使用如下所示的加载数据,但getContentHeight永远不会更改值。我该怎么强迫它更新。我已多次调用此内容高度,直到我手动点击webVeiw才更新内容高度。

有什么想法吗? TIA

private void UpdateMessageDisplay(){   // loadData触发onPageFinished但没有新数据    browser.loadData(“”+ msgInnerHTML +“”,“text / html”,“utf-8”);    browser.reload(); //必需或页面永不刷新   // browser.invalidate(); //没用?

}

2 个答案:

答案 0 :(得分:0)

尝试使用webview。

webview.loadurl()应该做同样的事情......

答案 1 :(得分:0)

以下是强制我的webview更新的方法:请参阅// WEBVIEW上的代码。

package com.example.scroll;
// philip r brenan at gmail.com, www.appaapps.com 
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebView;

public class MainActivity extends Activity
 {protected void onCreate(Bundle savedInstanceState)
   {super.onCreate(savedInstanceState);
    setContentView(new MyWebView(this)); 
   }
  class MyWebView extends WebView 
   {MyWebView(Context Context)
     {super(Context);
      getSettings().setJavaScriptEnabled(true);
      addJavascriptInterface(this, "Android");   
      new Thread()
       {public void run()
         {for(int j = 0; j < 100; ++j)
           {post(new Runnable()
             {public void run()
               {loadData(content(), "text/html", "utf-8"); // Display in browser
               }
             });    
            try {Thread.sleep(5000);} catch(Exception e) {}
           }  
         }
       }.start();
     } 
    int c = 0, C = 1;
    String content() 
     {final StringBuilder s = new StringBuilder();
      //s.append("<html id="+(C++)+"><body>"); // WEBVIEW REFRESHES CORRECTLY *************** 
      s.append("<html><body>");              // WEBVIEW DOES NOT REFRESH ******************

      s.append("<h1 id=11>1111</h1>");
      s.append("<script>location.href = '#22';</script>");
      for(int i = 0; i < 10; ++i) s.append("<p>"+c+c+c); ++c;

      s.append("<h1 id=22>2222</h1>");
      for(int i = 0; i < 10; ++i) s.append("<p>"+c+c+c); ++c;
      Log.e("AAAAAA", "content="+s.toString());
      s.append("</body></html>");
      return s.toString();
     }
   } 
 }