WebView大小始终为0

时间:2013-09-09 16:41:41

标签: android android-webview

我似乎无法显示我的WebView。我怀疑是因为它的大小是0.我不确定如何取消这个WebView的归零!

这是我的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

</RelativeLayout>

这是我的onCreate():

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    View webViewLayout = ((LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE))
            .inflate(R.layout.twitterfeed, null, false);

    WebView webView = (WebView) webViewLayout.findViewById(R.id.webView1);

    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setJavaScriptEnabled(true);

    String summary = "http://www.example.com";
    webView.loadUrl(summary);
    System.out.println("webView: " + webView.getWidth());
    System.out.println("webView: " + webView.getHeight());

}

2 个答案:

答案 0 :(得分:0)

您正在为您的布局充气但从未通过Activity.setContentView()将其附加到应用窗口来显示它。使用

View webViewLayout = ((LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE))
        .inflate(R.layout.twitterfeed, null, false);
setContentView(webViewLayout);
WebView webView = (WebView) webViewLayout.findViewById(R.id.webView1);

或者更简单地让框架为你做通货膨胀:

setContentView(R.layout.twitterfeed);
WebView webView = (WebView) findViewById(R.id.webView1);

答案 1 :(得分:0)

  • 您需要使用ViewTreeObserver来测量webview布局的宽度和高度。
  • ViewTreeObserver对其全局布局侦听器进行了分类,并拥有自己的线程来测量布局维度。

            webView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener()
        {
            @Override
            public void onGlobalLayout()
            {
                System.out.println("webView: " + webView.getWidth());
                System.out.println("webView: " + webView.getHeight());
            }
        });