title: Android get height of webview content once rendered
body: <p>I'm trying to get the height of a webview once it has been rendered. It always returns null, I've tried <code>getHeight</code>, <code>getMeasuredHeight</code>, <code>getContentHeight</code> and it always returns null.</p>
  
  <p><strong>Layout:</strong></p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:id="@+id/instructions"
      android:background="@color/transparent_black" &gt;
  
          &lt;WebView
              android:id="@+id/top_content"
              android:layout_width="match_parent"
              android:layout_height="wrap_content" /&gt;
      &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p><strong>Activity</strong></p>
  
  <pre><code>public class TestActivity extends MenuActivity {
  
  private final static String TAG = "HearingTest";
  private String urlTopContent;
  private WebView topContent;
  private boolean mMoreInfoTop = true;
  private int mYdelta = 0;
  private int mBottomOffset = 0;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.right_hearing_test);
  
          String topHtml = this.getString(R.string.top_content);
          //String bottomHtml = this.getString(R.string.bottom_content);
  
          urlTopContent = "file:///android_asset/html/" + topHtml;
          WebViewSettings();
          LoadWebPage(urlTopContent);
      }
  
      public void WebViewSettings(){
  
          topContent = (WebView) findViewById(R.id.top_content);
          topContent.getSettings().setJavaScriptEnabled(true);
          topContent.getSettings().setBuiltInZoomControls(true);
          topContent.getSettings().setSupportZoom(true);
          topContent.getSettings().setLoadWithOverviewMode(true);
          topContent.setBackgroundColor(0);
          topContent.canGoBack();
  
          int topHeight = topContent.getContentHeight();
          Log.d("Top Height", "Height: " + topHeight);            
  
          topContent.setWebViewClient(new WebViewClient(){
  
              @Override
              public boolean shouldOverrideUrlLoading(WebView view, String url) {
                  if (Uri.parse(url).getHost().equals(urlTopContent)) {
                      // This is my web site, so do not override; let my WebView load the page
                      return false;
                  }
                  // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
                  Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                  startActivity(intent);
                  return true;
              }
  
              @Override
              public void onPageFinished(WebView view, String url) {
                  View webViewHeight = (View) findViewById(R.id.top_content);
                  int height = webViewHeight.getHeight();
                  Log.d("Top Content","Top Content Height:" + height);
              }
          });
      }
  
      public void LoadWebPage(String url){
  
          try {
              topContent.loadUrl(url);
              Log.d("Loading Web Page", "URL" + url + "connected");
          } 
          catch (Exception e) {
                  Log.d("Loading Web Page", "URL: " + url + " couldn't connect.");
          }
      }
  
  }
  </code></pre>
  
  <p>I don't even know if it's possible to get the height of the web view after it has rendered but I don't see why you couldn't. if anyones got and solutions it would be greatly appreciated.</p>